3

该应用程序运行良好,直到我在 OpenOffice.org Calc 中编辑了用户数据库 (*.dbf)。现在它给了我关于封闭数据集的上述错误。

4

3 回答 3

1

根据您自己的评论,您无法打开数据库文件,因为它已损坏。因此,您的错误并不意味着您忘记打开它,而是您的应用程序无法打开损坏的 .dbf 文件。

您可能会收到此错误的其他不太明显的原因,比您未能将表 Active 属性设置为 true 的明显原因,包括系统或 BDE 配置错误(ODBC 或 ADO,或其他 BDE 运行时文件丢失或未配置) 打开文件所需的

于 2011-07-21T16:45:25.780 回答
1

错误消息说,您的数据集未打开。似乎你忘了打开它或者你在某个地方关闭了它。

于 2011-07-21T10:31:46.807 回答
0

如果您运行您的应用程序,Delphi 将恢复数据集在 Delphi 表单设计器中的状态 openclosed

如果出现错误,Delphi 可以退出并关闭数据集。
此外,您可能在设计器中意外关闭了数据集,之后它不再在 ptogram 启动时自动打开。
当需要使用数据集时,您将收到此错误,因为数据集已关闭。

一种选择是在 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 中明确地打开数据集,因为这允许我记录任何错误。如果客户端应用程序出现异常,它会自动通过电子邮件发送给我。

于 2011-07-21T11:16:21.300 回答