何を選択すればよいか迷っています。あなたの意見を聞きたいと思っています。したがって、最も建設的なフィードバックをくれる人が答えとなります (これで、私が何を求めているかがわかります)。
状況。 私は会社の Web サイトのさまざまなプロジェクトで使用するこの dll を持っています。その主な用途は、ある種のデータ ラッパーです。いくつかのパラメーターを指定すると、正しい接続文字列が選択され、いくつかのデータベースに対してクエリが実行されます。したがって、その主な役割は、さまざまなデータベースから均一な方法でデータを取得し、後で処理することです。
トラブルが私に降り注ぎ始めました。 この dll は odbc ドライバーを使用してデータを取得しています。そのうちの 1 つは「iSeries Access ODBC ドライバー」と呼ばれる 64 ビット ドライバーです。このドライバーにはこの特定の問題があります。データ型を取得しようとすると、いくつかのケースでオーバーフローが発生します。
一時的な解決策 したがって、try-catch を使用して問題のある列を検出し、catch ブロックがヒットした場合は、データ型を文字列に設定して、このホットフィックスを作成しました。ODBC ではデータの取得に問題はありません。try-catch を使用しないと、データが 10 進数か文字かを検出できません。つまり、64 ビット バージョンのドライバーでは、32 ビット バージョンは問題なく動作します。
私のオプション
- try-catch を使用して 64 ビットの世界にとどまる
- try-catch をスキップして 32 ビットの世界にとどまる
- すべてのデータを文字列として取得し、「小数点検出」コードをコーディングして評価します
ドライバーをアップグレードしたばかりで、古いバージョンはさらに悪かったことに少し注意してください 。少なくともいくつかの機能があります。2005年からのもので、新しいバージョンもはるかに優れています。このライブラリをC#で作成し、.netを使用しています4