在 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#)[关闭]