2016-07-27 4 views
0

Я получаю эту ошибку, когда я делаю выбор openquery на связанном сервере, используя драйвер odxc для обеспечения. База данных, к которой я пытаюсь подключиться, построена на Progress.База данных Prov Provxx openquery Ошибка SQL

Не удается получить текущее значение строки столбца «[MSDASQL] .IVD_PRICE» от поставщика OLE DB «MSDASQL» для связанного сервера «FCEU». Не удалось преобразовать, поскольку значение данных переполнило тип данных, используемый поставщиком.

Есть ли работа для этого? У меня нет доступа к серверу, который я пытаюсь выполнить.

Спасибо!

ответ

0

База данных Progress содержит все типы данных как переменную длину. «Формат» - это просто предложение для отображения по умолчанию. Приложения-приложения обычно игнорируют эти предположения и поля «over-stuff».

Это дает большинству SQL-запросов шипение.

Лекарство зависит от версии Progress/OpenEdge.

Все версии Progress начиная с версии 9 поддерживают утилиту под названием «dbtool», которая сканирует db и корректирует атрибут «SQL-WIDTH» для любых полей, которые были переполнены. Вы должны запустить это на сервере. (Или убедить DBA, чтобы сделать это.)

http://knowledgebase.progress.com/articles/Article/P24496

Это очень распространенная, обычная процедура для баз данных Progress.

Вы также можете использовать параметр -checkwidth, чтобы эти вещи не происходили, - но в вашем случае лошадь уже вышла из сарая и может сломать приложение. Так что это, вероятно, сейчас вам не полезно.

Начиная с OpenEdge 11.5 есть новые возможности для автоматической обработки ширины нарушения, когда SQL клиент подключается:

http://knowledgebase.progress.com/articles/Article/How-to-enable-Authorized-Data-Truncation-in-a-JDBC-or-ODBC-connection

 Смежные вопросы

  • Нет связанных вопросов^_^