Cosa fa l'impostazione WorkArounds2 = 8192 su una connessione ODBC?
-
05-07-2019 - |
Domanda
La mia azienda ha un'applicazione di terzi che viene eseguita su un database Progress . Ho creato un'applicazione in cima al loro database usando una connessione ODBC.
Uno dei "capricci" " of Progress è che non rispetta le larghezze di colonna SQL, quindi consentirà 100 caratteri in una colonna definita come varchar (50). Durante la lettura di questi dati tramite ODBC, viene visualizzato il seguente errore:
Colonna test_column nella tabella PUB.test_table ha un valore che supera il suo lunghezza massima o precisione.
Le tecniche di supporto dell'azienda che costruiscono l'applicazione mi hanno indicato l'aggiunta di un po 'di lavoro attorno ai flag nel registro per la connessione ODBC, tuttavia, non riesco a trovare alcuna documentazione su cosa faranno questi flag o quali possibili valori siamo. Le chiavi di registro sono
KEY_CURRENT_USER- > WorkArounds; Software- > ODBC > ODBC.INI- > MyODBCConnectionName- > KEY_CURRENT_USER- > Software- > ODBC > ODBC.INI- > MyODBCConnectionName- > WorkArounds2
Google mi ha trovato altri problemi che le persone hanno risolto aggiungendo questi flag con valori specifici (incluso il mio preferito personale da The Daily WTF ) ma non riesco a trovare da nessuna parte che mi dica cosa fanno effettivamente le bandiere. Sai?
Soluzione
Il collegamento da @ tom-bascom non funziona più perché Progress ha spostato il KB. il commento di @ stefan-moser sulla domanda di @ mdb è appropriato.
Secondo Capitolo 11 Opzioni di WorkAround del Serie DataDirect Connect per riferimento ODBC
WorkArounds2 = 8192. Abilitando questa opzione, Microsoft Access non passa l'errore -7748. Microsoft Access richiede solo dati come SQL_C_WCHAR a due byte, che è una dimensione del buffer insufficiente per memorizzare il carattere UCS2 e il terminatore null; pertanto, il driver restituisce un avviso, "01004 Dati troncati" e restituisce un carattere null a Microsoft Access. Microsoft Access quindi passa l'errore -7748.
riferimenti:
Altri suggerimenti
È una correzione per:
"Questo errore si verifica con Microsoft Access 2000 quando si utilizzano i driver Connect per ODBC per collegarsi a una tabella a cui sono associati uno o più indici."
Il file README per DataDirect Connect per ODBC ( un driver ODBC basato su Unix) contiene un elenco di soluzioni alternative nelle "Opzioni di WorkAround del driver" sezione del documento.