Исключения при использовании драйвера 4D ODBC в C # - PullRequest
2 голосов
/ 09 января 2012

У меня есть база данных 4D, из которой я пытаюсь получить данные (и экспортировать в базу данных SQL), используя драйвер ODBC.

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

Но у меня есть 5 таблиц, которые выдают 4 разных исключения в методе Fill OdbcDataAdapter.

  1. исключение с пустым сообщением
  2. исключение дубликата столбца (в заполнении документа OdbcDataAdapter должна быть возможность преодолеть это)
  3. ОШИБКА [S1000] [Симба] [Драйвер Simba ODBC][Библиотека файлов Codebase]
  4. Попытка чтения или записи защищенной памяти

Я читаю документацию MS, но у меня нет доступа к документации 4D.

Я надеюсь, что кто-то здесь имел некоторый опыт работы с подобной ситуацией и может указать мне правильное направление.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 20 января 2013

В 4D существуют определенные типы данных, которые могут вызвать проблемы. Например, я знаю, что blob, interval и int64 могут быть проблемой.

Что вы можете сделать, так это преобразовать поля в VARCHAR в вашем операторе select в 4D.

как:

SELECT Field1, Field2, CAST(ProblemField AS VARCHAR) FROM MyTable

Какую версию драйвера вы используете? Я использовал 12.02, но я знаю, что есть более новые версии, которые исправили некоторые ошибки, я просто не знаю, как их исправить.

0 голосов
/ 23 декабря 2014

Я согласен, что драйвер 4D ODBC очень специфичен.

В частности, требуется сильное литье. IE CAST(1 as boolean) для логических значений.

4D также имеет определенные типы данных изображения в дополнение к BLOB-объектам. Смотрите ниже ссылки

http://docs.4d.com/4Dv14R4/4D/14-R4/Principles-for-integrating-4D-and-the-4D-SQL-engine.300-1733038.en.html

Список всех системных таблиц 4D, которые имеют информацию о схеме http://docs.4d.com/4Dv14R4/4D/14-R4/System-Tables.300-1733035.en.html

...