経由Delphi
で接続するアプリケーションが 1 つあります。を用いて開発。MS-SqlServer-2008R2
BDE + ODBC
Delphi 7
TDatabase, TTable, TQuery
コンポーネントを使用したデータへのアクセス。
はTDatabase
BDE のエイリアス名を指し、 プロパティを使用する他のコンポーネントを指しますTDatabase.Databasename
。
メインのトランザクション テーブルには 300,000 を超えるレコードがあります。
メインアプリケーションでテーブルをクエリすると、TQuery
与えられたレコード数は 250 万ですが、テーブルには 300k レコードしかありません。クエリを開いた後、アプリケーションがクラッシュしました。ここで何が問題なのですか?
コードをデバッグすると、"Memory Error"
atが得られTQuery.Open
ます。しかし、アプリケーションの実行中にエラーは発生せず、アプリケーションだけがクラッシュしました。
クエリを開く前にタスクマネージャーでメモリ使用量を確認しました20 MB
が、クエリを開いた後、アプリケーションは700 MB memory
.
同じクエリをコピーして SQL サーバー管理スタジオで実行し、45000 レコードを取得しました。
ここでも、1 つのフォームと 1 つTQuery
の ,を持つ小さなアプリケーションをもう 1 つ作成TDatabase
し、クエリを実行すると、正しいカウント 45000 が得られます。
メイン アプリケーションで異常なレコード数が表示されるのはなぜですか?