OpenOffice.org Calcでユーザーデータベース(* .dbf)を編集するまで、アプリケーションは完全に機能していました。これで、閉じたデータセットに関する上記のエラーが発生します。
3 に答える
エラーメッセージは、データセットが開いていないことを示しています。開くのを忘れたか、どこかで閉じたようです。
あなた自身のコメントによると、データベースファイルが破損しているため、データベースファイルを開くことができませんでした。したがって、あなたの場合のエラーは、あなたがそれを開くのを忘れたことを意味するのではなく、あなたのアプリが壊れた.dbfファイルを開くことができないことを意味しました。
テーブルのActiveプロパティをtrueに設定できなかったという明らかな理由以外に、このエラーが発生する可能性がある他のそれほど明白ではない理由には、システムまたはBDE構成エラー(ODBCまたはADO、または他のBDEランタイムファイルがないか構成されていない)が含まれます)ファイルを開くために必要なもの
アプリケーションを実行すると、DelphiはデータセットがDelphiフォームデザイナに持っていた open
または状態を復元します。closed
エラーが発生した場合、Delphiはこれを完全に削除し、データセットを閉じることができます。
また、ptogramの開始時にデータセットが自動オープンしなくなった後、デザイナーで誤ってデータセットを閉じた可能性もあります。
データセットを使用するときは、データセットが閉じているため、このエラーが発生します。
1つのオプションは、FormCreateイベントでデータセットを明示的に開き、そこにエラー処理コードを追加することです。これにより、エラーメッセージを確認し、そこからデバッグできます。
procedure TForm1.FormCreate(sender: TObject);
begin
try
MyDBFTable.Open;
except on exception e do
WriteErrorToLogFile('Cannot open MyDBFTable, error is: ' + e.message);
// or
//ShowMessage('Cannot open MyDBFTable, error is: ' + e.message);
end; {try}
end;
エラーをログに記録できるため、FormCreateで常にデータセットを明示的に開きます。クライアントアプリに例外がある場合、それは自動的に私に電子メールで送信されます。