#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 для связи с таблицей, с которой связан один или несколько индексов».
Ответ №3:
Файл README для DataDirect Connect для ODBC (драйвер ODBC на базе Unix) содержит список обходных путей в разделе «Параметры обхода драйверов» документа.
Комментарии:
1. Спасибо за ссылку, но в ней не говорится, что делает WorkArounds2=8192.
2. на самом деле, он не содержит ссылки. В нем просто говорится следующее: «Обратитесь к главе «Параметры обходного пути» в серии DATADIRECT CONNECT ДЛЯ ССЫЛКИ ODBC для описания этих параметров». Пожалуйста, ознакомьтесь с новым ответом для получения ответа.