¿Qué hace el ajuste WorkArounds2 = 8192 en una conexión ODBC?
-
05-07-2019 - |
Pregunta
Mi empresa tiene una aplicación de terceros que se ejecuta en una base de datos de Progress . He estado creando una aplicación sobre su base de datos utilizando una conexión ODBC.
Una de las " peculiaridades " Progreso es que no respeta los anchos de columna de SQL, por lo que permitirá 100 caracteres en una columna definida como varchar (50). Al leer estos datos a través de ODBC, aparece el siguiente error:
Columna test_column en tabla PUB.test_table tiene un valor que excede su Longitud máxima o precisión.
Los técnicos de soporte técnico de la compañía que construye la aplicación me indicaron que agregue algunos indicadores de trabajo en el registro para la conexión ODBC. Sin embargo, no puedo encontrar ninguna documentación sobre qué harán estas banderas o cuáles son los posibles valores. son. Las claves de registro son
KEY_CURRENT_USER- > Software- > ODBC- > ODBC.INI- > MyODBCConnectionName- > WorkArounds KEY_CURRENT_USER- > Software- > ODBC- > ODBC.INI- > MyODBCConnectionName- > WorkArounds2
Google me ha encontrado otros problemas que las personas han resuelto al agregar estas banderas con valores específicos (incluido mi favorito personal de The Daily WTF ) pero no puedo encontrar ningún lugar que me diga qué hacen realmente las banderas. ¿Sabes?
Solución
El enlace de @ tom-bascom ya no funciona porque Progress movió sus KB. el comentario de @ stefan-moser sobre la pregunta de @mdb es apropiado.
Según Capítulo 11 Opciones de WorkAround del DataDirect Connect Series para referencia de ODBC
WorkArounds2 = 8192. Habilitar esta opción hace que Microsoft Access no pase el error -7748. Microsoft Access solo solicita datos como un SQL_C_WCHAR de dos bytes, que es un tamaño de búfer insuficiente para almacenar el carácter UCS2 y el terminador nulo; por lo tanto, el controlador devuelve una advertencia, " 01004 Datos truncados " y devuelve un carácter nulo a Microsoft Access. Microsoft Access luego pasa el error -7748.
referencias:
Otros consejos
Es una solución para:
'Este error ocurre con Microsoft Access 2000 cuando se usan los controladores Connect for ODBC para enlazar a una tabla que tiene uno o más índices asociados.'
El archivo README para DataDirect Connect para ODBC ( un controlador ODBC basado en Unix) contiene una lista de soluciones en las " Driver WorkAround Options " sección del documento.