WorkArounds2 = 8192の設定は、ODBC接続で何をしますか?
-
05-07-2019 - |
質問
私の会社には、 Progress データベースで実行されるサードパーティアプリケーションがあります。 ODBC接続を使用して、データベースの上にアプリケーションを構築しています。
「癖」の1つProgressの利点は、SQLの列幅を尊重しないことです。そのため、varchar(50)として定義された列で100文字を使用できます。 ODBC経由でこのデータを読み取ると、次のエラーが表示されます。
テーブルの列test_column PUB.test_tableの値が 最大長または精度。
アプリケーションを構築する会社のサポート技術者は、ODBC接続のレジストリにフラグの回避策を追加するように指示しましたが、これらのフラグが何をするか、または可能な値についてのドキュメントが見つかりませんあります。レジストリキーは
KEY_CURRENT_USER-> Software-> ODBC-> ODBC.INI-> MyODBCConnectionName-> WorkArounds KEY_CURRENT_USER-> Software-> ODBC-> ODBC.INI-> MyODBCConnectionName-> WorkArounds2
Googleは、特定の値を持つこれらのフラグを追加することで人々が解決した他の問題を見つけました( The Daily WTF )ですが、フラグが実際に何をするかを教えてくれる場所はどこにもありません。知っていますか
解決
ProgressがKBを移動したため、@ tom-bascomからのリンクは機能しなくなりました。 @mdbの質問に対する@ stefan-moserのコメントが適切です。
第11章回避策 DataDirect Connect Series for ODBCリファレンス
WorkArounds2 = 8192。このオプションを有効にすると、Microsoft Accessはエラー-7748を渡さなくなります。 Microsoft Accessは、データを2バイトのSQL_C_WCHARとしてのみ要求します。これは、UCS2文字とヌルターミネータを格納するには不十分なバッファサイズです。したがって、ドライバーは「01004データが切り捨てられました」という警告を返します。ヌル文字をMicrosoft Accessに返します。 Microsoft Accessはエラー-7748を渡します。
参照:
他のヒント
これは以下に対する修正です:
'Connect for ODBCドライバーを使用して、1つ以上のインデックスが関連付けられているテーブルにリンクする場合、このエラーはMicrosoft Access 2000で発生します。'
DataDirect Connect for ODBCのREADMEファイル( UnixベースのODBCドライバー)には、「ドライバーの回避策オプション」に回避策のリストが含まれています。ドキュメントのセクション。