在 C# 中使用 4D ODBC 驱动程序的异常

Posted

技术标签:

【中文标题】在 C# 中使用 4D ODBC 驱动程序的异常【英文标题】:Exceptions using 4D ODBC Driver in C# 【发布时间】:2012-02-05 21:04:34 【问题描述】:

我有一个 4D 数据库,我正在尝试使用他们的 ODBC 驱动程序从中获取数据(并导出到 SQL DB)。

我能读懂大部分表格,所以我知道驱动程序工作正常。

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

    空消息的异常 重复列异常(在doc OdbcDataAdapter Fill 中应该可以解决这个问题) 错误 [S1000] [Simba][Simba ODBC 驱动程序][代码库文件库] 试图读取或写入受保护的内存

我正在阅读 MS 文档,但我无权访问 4D 文档。

我希望这里有人对这种情况有一些经验,可以为我指明正确的方向。

提前致谢。

【问题讨论】:

Aparently the ERROR [S1000] [Simba][Simba ODBC Driver][Codebase File Library] 尝试读取图像类型的字段时发生异常,尽管我仍然找不到发生这种情况的原因。仅供有相同问题的人参考。 【参考方案1】:

我同意 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

【讨论】:

【参考方案2】:

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

您可以做的事情是在您的选择语句中将字段转换为 VARCHAR 到 4D。

喜欢:

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

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

【讨论】:

以上是关于在 C# 中使用 4D ODBC 驱动程序的异常的主要内容,如果未能解决你的问题,请参考以下文章

两个 INNER JOIN ODBC MSAccess 异常与查询

创建 SQL 表作为现有表的副本(ODBC 和 C#)[关闭]

使用 ODBC 和用户输入连接字符串在 C# 应用程序中连接到 Oracle 11g

C#实现ODBC驱动代码连接Sql Server数据库

c#应用程序中的ODBC泄漏内存

为啥 Oracle odbc 驱动程序没有为整数和数字类型提供 TYPE_NAME?