【发布时间】:2013-09-18 07:26:40
【问题描述】:
我对选择什么有疑问,我希望得到您的意见,因此,答案将是给谁提供最具建设性的反馈(现在您知道我希望得到什么)
情况。 我有这个 dll,我在公司网站的许多不同项目中使用它, 它的主要用途是某种数据包装器,我指定一些参数,然后它选择正确的连接字符串并针对某个数据库运行查询。 所以它的主要作用是以统一的方式从不同的数据库中取回数据,然后再进行处理。
麻烦开始在我身上落下。 这个 dll 正在使用 odbc 驱动程序来获取它的数据, 其中之一是名为“iSeries Access ODBC Driver”的 64 位驱动程序 这个驱动程序有这个特定的问题,如果我尝试获取它的数据类型,它会在少数情况下导致溢出
临时解决方案 所以我做了这个热修复,使用try-catch来检测有问题的列,如果catch块被命中,我将数据类型设置为字符串。 ODBC 获取数据没有问题,我只是无法检测数据是十进制还是字符而不使用 try-catch.... 也就是说,在64位版本的驱动中,32位版本的驱动就好了。
我的选择
- 使用 try-catch 并留在 64 位世界中
- 跳过 try-catch 并留在 32 位世界中
- 以字符串形式获取所有数据,然后编写一些“十进制检测”代码进行评估
小记 我刚刚升级了驱动,旧版本更糟糕,现在我至少有一些功能,它是从 2005 年开始的,新的也表现得更好,我也在 C# 中制作了这个库,并且正在使用 .net 4
【问题讨论】:
标签: c# performance odbc try-catch 32bit-64bit