1

我希望有人可以帮助我解决这个问题,因为我正在扯掉我的头发。

我正在创建一个使用 SQL Server Compact 存储一组数据的应用程序。我正在使用 TADOQuery 连接到工作正常的服务器,并且我能够创建表并将值插入到数据库中。然后我可以在 Management Studio 中进行检查,以确保一切都已成功完成。

我遇到的问题是当我尝试从表中检索数据时。在 Management Studio 中,我可以执行标准 SQL 查询

    SELECT * FROM Components

这会愉快地返回一个包含存储在 components 表中的所有数据的表。

但是,当我使用 TADOQuery 在 Delphi 中执行此代码时,我收到“对象已打开”错误。我正在使用的代码如下。

    Query := TADOQuery.Create(nil);
    Query.ConnectionString := 'Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=c:\temp\test.sdf';
    Query.SQL.Text := 'SELECT * FROM Components';
    Query.Open;

这会导致“对象已打开”错误。

任何想法将不胜感激!

干杯,

阿里

更新

我更新了我的代码如下,但我仍然得到同样的错误。有任何想法吗?

    Query := TADOQuery.Create(nil);

    Connection := TADOConnection.Create(nil);
    Connection.ConnectionString := 'Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5; Data Source=c:\temp\test.sdf';
    Connection.LoginPrompt := False;
    Query.Connection := Connection;

    DataSource := TDataSource.Create(nil);
    Query.DataSource := DataSource;

    Query.SQL.Text := 'SELECT * FROM Components';
    Query.Open;
4

0 回答 0