В моей компании есть стороннее приложение, работающее в базе данных Прогресс. Я создавал приложение поверх их базы данных, используя соединение ODBC.
Одна из «причуд» Progress заключается в том, что он не учитывает ширину столбцов SQL, поэтому допускает 100 символов в столбце, определенном как varchar (50). При чтении этих данных через ODBC я получаю следующую ошибку:
Column test_column in table PUB.test_table has value exceeding its max length or precision.
Специалисты службы поддержки компании, создавшей приложение, посоветовали мне добавить некоторые работы по устранению флагов в реестре для подключения ODBC, однако я не могу найти никакой документации относительно того, что эти флаги будут делать или каковы возможные значения. Ключи реестра
KEY_CURRENT_USER->Software->ODBC->ODBC.INI->MyODBCConnectionName->WorkArounds KEY_CURRENT_USER->Software->ODBC->ODBC.INI->MyODBCConnectionName->WorkArounds2
Google обнаружил у меня другие проблемы, которые люди решили, добавив эти флаги с определенными значениями (включая мой личный фаворит из Ежедневный WTF), но я не могу найти нигде, которая рассказывала бы мне, что на самом деле делают флаги. Ты знаешь?





Файл README для DataDirect Connect для ODBC (драйвер ODBC для Unix) содержит список обходных решений в разделе документа «Параметры рабочего цикла драйвера».
на самом деле, он не содержит ссылки. Он просто говорит следующее: «Обратитесь к главе« Параметры рабочего процесса »в СЕРИИ DATADIRECT CONNECT ДЛЯ СПРАВОЧНИКОВ ODBC для описания этих параметров». Пожалуйста, смотрите новый ответ для ответа.
Это исправление для:
«Эта ошибка возникает в Microsoft Access 2000 при использовании драйверов Connect for ODBC для связи с таблицей, с которой связаны один или несколько индексов».
Ссылка от @tom-bascom больше не работает, поскольку Progress переместил свою базу знаний. комментарий @stefan-moser к вопросу @mdb уместен.
В соответствии с Главой 11 «Параметры обходного решения» серии DataDirect Connect Series for ODBC Reference
Обходной путь2=8192. Включение этого параметра приводит к тому, что Microsoft Access не передает ошибку -7748. Microsoft Access запрашивает данные только в виде двухбайтового SQL_C_WCHAR, что является недостаточным размером буфера для хранения символа UCS2 и нулевого признака завершения; таким образом, драйвер возвращает предупреждение «01004 Данные усечены» и возвращает в Microsoft Access нулевой символ. Microsoft Access затем передает ошибку -7748.
Рекомендации:
Спасибо за ссылку, но там не сказано, что делает WorkArounds2 = 8192.