Que fait le paramètre WorkArounds2 = 8192 sur une connexion ODBC?
-
05-07-2019 - |
Question
Ma société dispose d'une application tierce qui s'exécute sur une base de données Progress . J'ai créé une application sur leur base de données à l'aide d'une connexion ODBC.
L’un des "décalés" of Progress est qu'il ne respecte pas la largeur des colonnes SQL. Il autorise donc 100 caractères dans une colonne définie en tant que varchar (50). Lors de la lecture de ces données via ODBC, le message d'erreur suivant s'affiche:
Colonne test_column dans la table PUB.test_table a une valeur dépassant sa longueur maximale ou précision.
Les techniciens de support de la société qui ont créé l'application m'ont orienté vers l'ajout de balises de contournement dans le registre pour la connexion ODBC. Cependant, je ne trouve aucune documentation sur ce que ces balises feront ou sur les valeurs possibles. sont. Les clés de registre sont
KEY_CURRENT_USER- > Logiciel- > ODBC- > ODBC.INI- > MyODBCConnectionName- > Contournements KEY_CURRENT_USER- > Logiciel- > ODBC- > ODBC.INI- > MyODBCConnectionName- > WorkArounds2
Google m'a trouvé d'autres problèmes que les gens ont résolus en ajoutant ces drapeaux avec des valeurs spécifiques (y compris mon favori personnel parmi The Daily WTF ), mais je ne trouve aucun endroit qui me dise ce que les drapeaux font réellement. Le savez-vous?
La solution
Le lien de @ tom-bascom ne fonctionne plus car Progress a déplacé sa base de connaissances. le commentaire de @ stefan-moser sur la question de @ mdb est approprié.
Selon le Chapitre 11 Options d’arrière-plan du Référence de DataDirect Connect Series pour ODBC
WorkArounds2 = 8192. L'activation de cette option empêche Microsoft Access de transmettre l'erreur -7748. Microsoft Access ne demande des données que sous la forme d'un SQL_C_WCHAR à deux octets, ce qui représente une taille de mémoire tampon insuffisante pour stocker le caractère UCS2 et le terminateur null; ainsi, le pilote renvoie un avertissement, "01004 Données tronquées". et renvoie un caractère null à Microsoft Access. Microsoft Access transmet ensuite l'erreur -7748.
références:
Autres conseils
C’est un correctif pour:
'Cette erreur se produit avec Microsoft Access 2000 lors de l'utilisation des pilotes Connect for ODBC pour créer un lien vers une table à laquelle un ou plusieurs index sont associés.'
Le fichier README de DataDirect Connect pour ODBC ( un pilote ODBC basé sur Unix) contient une liste de solutions de contournement dans les "Options de contournement du pilote". section du document.