odbce で bde エイリアスとシステム データソースを使用して、Delphi 7 から ms SQL Server 2008 に接続すると、「接続が別の hstmt でビジー状態です」というエラーが発生することがあります。
すべてのレコードを取得していない結果セットを見つける方法はありますか?
Delphiがmssqlサーバーへの接続を作成する方法、
odbce で bde エイリアスとシステム データソースを使用して、Delphi 7 から ms SQL Server 2008 に接続すると、「接続が別の hstmt でビジー状態です」というエラーが発生することがあります。
すべてのレコードを取得していない結果セットを見つける方法はありますか?
Delphiがmssqlサーバーへの接続を作成する方法、
そのエラーが発生するたびに、コードにバグがあることを示しています。コードを正しく記述した場合、接続がビジーになることは決してないため、接続がビジーのときに状態を確認する必要はありません。コードの続行を許可する前に、使用する場所ですべてのステートメントを必ず閉じてください。
最善の解決策は、BDEを別のDBアクセスライブラリ(たとえば、ADOまたはDBX)に置き換えることです。
または、各Query.Openの後にQuery.FetchAllを呼び出すことで、このエラーを回避できます。
または、たとえばOpenFetchメソッドを追加することにより、FetchAllautoを自動的に呼び出す子孫クラスを記述します。