Что делает параметр WorkArounds2=8192 для подключения ODBC?

#registry #odbc #openedge #progress-db

Вопрос:

В моей компании есть стороннее приложение, которое работает в базе данных прогресса. Я создавал приложение поверх их базы данных, используя соединение ODBC.

Одна из «причуд» прогресса заключается в том, что он не учитывает ширину столбцов SQL, поэтому он допускает 100 символов в столбце, определенном как varchar(50). При чтении этих данных через ODBC я получаю следующую ошибку:

Столбец test_column в таблице PUB.test_table имеет значение, превышающее его максимальную длину или точность.

Специалисты службы поддержки в компании, создавшей приложение, указали мне на необходимость добавления некоторых обходных флагов в реестр для подключения ODBC, однако я не могу найти никакой документации о том, что будут делать эти флаги или каковы возможные значения. Разделами реестра являются

KEY_CURRENT_USER->Программное обеспечение->>ODBC->>>ODBC.INI->MyODBCConnectionName->>Обходные пути KEY_CURRENT_USER->>>Программное обеспечение->>>>ODBC->>>> > ODBC.INI->MyODBCConnectionName->>Обходные пути 2

Google нашел мне другие проблемы, которые люди решили, добавив эти флаги с определенными значениями (включая мой личный фаворит из Ежедневного WTF), но я нигде не могу найти, что говорит мне, что на самом деле делают флаги. Ты знаешь?

Ответ №1:

Ссылка от @tom-bascom больше не работает, потому что Прогресс переместил их КБ. комментарий @stefan-moser к вопросу @mdb уместен.

В соответствии с разделом 11 Варианты решения проблемы серии DataDirect Connect для справки ODBC

Обходные пути 2=8192. Включение этого параметра приводит к тому, что Microsoft Access не передает сообщение об ошибке -7748. Microsoft Access запрашивает данные только в виде двухбайтового SQL_C_WCHAR, что является недостаточным размером буфера для хранения символа UCS2 и нулевого терминатора; таким образом, драйвер возвращает предупреждение «01004 Данные усечены» и возвращает нулевой символ в Microsoft Access. Затем Microsoft Access передает сообщение об ошибке -7748.

Рекомендации:

Ответ №2:

Это исправление для:

«Эта ошибка возникает в Microsoft Access 2000 при использовании драйверов подключения для ODBC для связи с таблицей, с которой связан один или несколько индексов».

Кб поддержки DataDirect

Ответ №3:

Файл README для DataDirect Connect для ODBC (драйвер ODBC на базе Unix) содержит список обходных путей в разделе «Параметры обхода драйверов» документа.

Комментарии:

1. Спасибо за ссылку, но в ней не говорится, что делает WorkArounds2=8192.

2. на самом деле, он не содержит ссылки. В нем просто говорится следующее: «Обратитесь к главе «Параметры обходного пути» в серии DATADIRECT CONNECT ДЛЯ ССЫЛКИ ODBC для описания этих параметров». Пожалуйста, ознакомьтесь с новым ответом для получения ответа.