我希望有人可以帮助我解决这个问题,因为我正在扯掉我的头发。
我正在创建一个使用 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;