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