我正在开发一个需要使用“相似”模式连接到不同数据库类型(SQL Server、Oracle、DB2)的应用程序。我说“相似”模式是因为表名、列等......是相同的,但底层数据类型特定于该数据库类型。例如,在 SQL Server 和 Oracle 数据库中,我都有一个名为“tablename”的表和一个名为“column”的列。'column' 的数据类型对于 Oracle 是 NUMBER,对于 SQL Server 是 float。
我可以通过通用 ADO 接口获取适当的提供程序工厂、连接和查询,但我不确定并且遇到问题的是我应该如何访问此列。
对于 Oracle,我相信我应该对 NUMBER 数据类型字段使用访问器函数“GetDecimal()”,事实上,似乎使用任何其他访问器,例如 GetInt32()、GetDouble(),我都会遇到强制转换异常。对于 SQL Server,我应该使用访问器函数“GetDouble()”。无论底层数据库数据类型如何,是否有一种方法/策略可以使用单个访问器函数获取此值?请注意,我无法控制后端数据库架构。
谢谢,我很感激回复。