C#中使用4D ODBC驱动程序的例外情况

时间:2012-01-09 09:54:58

标签: c# odbc 4d-database

我有一个4D数据库,我试图从他们的ODBC驱动程序获取数据(并导出到SQL数据库)。

我可以阅读的大多数表格,所以我知道驱动程序有效。

但我有5个表在OdbcDataAdapter的Fill方法中抛出4个不同的异常。

  1. 包含空消息的例外
  2. 重复列异常(在doc OdbcDataAdapter文件填充中应该能够克服这一点)
  3. 错误[S1000] [Simba] [Simba ODBC驱动程序] [代码库文件库]
  4. 尝试读取或写入受保护的内存
  5. 我正在阅读MS文档,但我无法访问4D文档。

    我希望有人在这里遇到过这种情况的一些经验,可以指出我正确的方向。

    提前致谢。

2 个答案:

答案 0 :(得分:1)

4D中存在某些会导致问题的数据类型。例如,我知道blob,interval和int64可能会有麻烦。

你可以做的事情是将你的select语句中的字段转换为4到4的VARCHAR。

像:

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

您使用的是什么版本的驱动程序?我一直在使用12.02,但我知道有更新的版本修复了一些错误,我只是不确定如何得到它们。

答案 1 :(得分:0)

我同意4D ODBC驱动程序非常特别。

具体而言,它需要强力铸造。 IE CAST(1 as boolean)表示布尔值。

除了blob之外,4D还具有特定的数据类型图片。见以下链接

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