【问题标题】:Cannot perform this operation on a closed dataset无法对已关闭的数据集执行此操作
【发布时间】:2012-11-08 11:21:47
【问题描述】:

我只是尝试使用 TADOQuery 组件执行“select” sql 语句,但是当 TADOQuery 的“Open”语句正在执行时,我收到以下错误:

无法对已关闭的数据集执行此操作...
ADOQuery1.Active := False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from Table1 where Column1 = <value>');
ADOQuery1.Open;

你猜我为什么会收到这个错误?

【问题讨论】:

  • 如果您在 D7 中遇到问题,则不应添加 2010 或 2009 的标签。
  • 请给我们看代码。没有代码,我们只能猜测。
  • 是否有事件处理程序 (OnBeforeOpen) 或附加到查询的主/详细数据源?您还可以使用诸如 madExcept 之类的工具来查找发生异常的确切代码位置,因为它将与源文件名和行号一起显示。
  • 代码在 cmets 中不起作用。请编辑问题以包含代码。
  • TDatasource 是否与 AdoQuery 连接?

标签: delphi delphi-7


【解决方案1】:

您的代码看起来不错。

检查是否有任何事件处理程序 (OnBeforeOpen) 或附加到查询的主/详细数据源。在这种情况下,仍然关闭的不同数据集可能会导致错误。

【讨论】:

    【解决方案2】:

    问题已解决,我正在使用 SQL Server 2008 作为数据库。

    这里“SetAppRole”没有应用到数据库上,应用后,现在没有错误了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-16
      • 2015-07-12
      • 2014-09-21
      • 1970-01-01
      • 2013-02-05
      • 2015-02-27
      • 2013-04-10
      相关资源
      最近更新 更多