2

Delphi 6 アプリケーションを Delphi 2007 に移植し、BDE を使用して Oracle 9i データベースに接続しました。私は取得しています

ORA-01426: 数値オーバーフロー例外

ストアド プロシージャを実行するとき。これはランダムに発生し、同じパラメーターを使用してアプリケーションを介してストアド プロシージャを再実行すると、例外は発生しません。

古い Delphi 6 アプリケーションは問題なく動作します。

アイデアはありますか?

4

2 に答える 2

2

コード例を示すとこれが簡単になるかもしれませんが、ここにいくつかの予感があります:

  1. 明示的なデータ型を持たない別のソース (Excel など) からのデータですか? 混合データまたはあいまいなデータにより、BDE が誤ったデータ型をフィールドに割り当て、データベース フィールドと互換性がなくなる可能性があります。

  2. 数値の書式設定の問題である可能性があります (一部の米国中心のコンポーネントはローカライズを適切に処理しません)。ローカリゼーションは英語 (US) 以外ですか? そうですか、英語 (US) に変更すると問題は解決しますか?

これらが完全に欠落している場合は、詳細が役立つ場合があります。

于 2008-12-09T02:11:38.190 に答える
0

アプリの D6 バージョンは、同じバージョンの BDE、Oracle、およびデータベースを使用していますか? もしそうなら、それはおそらく渡されるデータに関するものです(コンテンツまたはメカニズムのいずれか)。

それらのデータが何であるか、またはそれらがどのように渡されるかがわからないため、診断がかなり難しくなります。

于 2008-12-10T01:50:58.310 に答える