It is currently 25 May 2020, 23:46 Advanced search

Creazione nuovo DB Errore

Domande e risposte su come utilizzare Instant Developer Foundation al meglio

Creazione nuovo DB Errore

Postby f.celi » 27 March 2020, 16:00

Ho creato sul mio server MSSQL un nuovo DB con le regole di confronto impostate come SQL_Latin1_General_CP1_CI_AS.
Alla creazione della struttura mi viene segnalato l'errore:
Impossibile risolvere il conflitto tra le regole di confronto "SQL_Latin1_General_CP850_BIN" e "SQL_Latin1_General_CP1_CI_AS" nell'operazione equal to.
Non capisco è un nuovo DB creato da zero, mi sembra di aver fatto la stessa operazione in passato senza problemi?!
Cosa sto sbagliando?
User avatar
f.celi
 
Posts: 872
Joined: 2 July 2013, 14:08

Re: Creazione nuovo DB Errore

Postby lucabaldini » 27 March 2020, 16:33

Io ho sempre usato SQL_Latin1_General_CP850_BIN come regola di confronto... se ci sono campi DocID per loro viene impostata quella Colate...
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4319
Joined: 1 October 2010, 17:03
Location: Bologna


Re: Creazione nuovo DB Errore

Postby lucabaldini » 27 March 2020, 16:34

Non so se questo può aiutare...
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4319
Joined: 1 October 2010, 17:03
Location: Bologna

Re: Creazione nuovo DB Errore

Postby lucabaldini » 27 March 2020, 16:39

Quella che hai impostato tu è SQL_Latin1_General_CP1_CI_AS:
- latin1 makes the server treat strings using charset latin 1, basically ascii
- CP1 stands for Code Page 1252
- CI case insensitive comparisons so 'ABC' would equal 'abc'
- AS accent sensitive, so 'ü' does not equal 'u'

Quella che usiamo noi è SQL_Latin1_General_CP850_BIN e dovrebbe essere
- latin1 makes the server treat strings using charset latin 1, basically ascii
- CP850 è code page 850 (https://en.wikipedia.org/wiki/Code_page_850)
- BIN indica binary order

User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4319
Joined: 1 October 2010, 17:03
Location: Bologna

Re: Creazione nuovo DB Errore

Postby f.celi » 28 March 2020, 16:50

Ok, se queste sono le condizioni.
Effettivamente sono andato avanti creando il DB con le regole di confronto richieste "SQL_Latin1_General_CP850_BIN", a dispetto di quello che mi indicava il mio sistemista.
Sul mio ultimo progetto in produzione novembre/dicembre 2019, ho creato il DB con le regole di confronto "SQL_Latin1_General_CP1_CI_AS", ed ho campi DocID, anche se è una procedura online, in quel caso non ricordo di aver avuto dei problemi.
Grazie.
User avatar
f.celi
 
Posts: 872
Joined: 2 July 2013, 14:08

Re: Creazione nuovo DB Errore

Postby lucabaldini » 30 March 2020, 7:13

E' così da tanto tempo... almeno da quando è nata la DO...
Nel codice, nella procedura che crea un nuovo DB, è scritto:

Code: Select all
// Se è un DOC-ID e sono in SQL SRV devo mettere la collate
if (f->IsDOID() && ClassDB(GetApplType())==DBC_SQLSRV)
  s3=_T(" collate SQL_Latin1_General_CP850_BIN");


Quindi se è SQL Server (qualunque versione) ed il campo è DOCID (campo con dominio con concetto DO_ID) allora viene indicata quella regola di confronto... perché i campi DOCID è meglio se vengono confrontati in modo "strict" e non in modo "case insensitive"...
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4319
Joined: 1 October 2010, 17:03
Location: Bologna

Re: Creazione nuovo DB Errore

Postby lucabaldini » 30 March 2020, 7:16

(La modifica è nata il 24 febbraio 2006 ed è stata inserita nella versione 6.0)
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4319
Joined: 1 October 2010, 17:03
Location: Bologna

Re: Creazione nuovo DB Errore

Postby f.celi » 30 March 2020, 13:30

Ok, grazie per le delucidazioni tecniche.
User avatar
f.celi
 
Posts: 872
Joined: 2 July 2013, 14:08


Return to Tips & Tricks - Foundation

Who is online

Users browsing this forum: No registered users and 9 guests

cron