连接到SQL Server Compact Edition时“对象已打开”

时间:2012-07-15 22:48:49

标签: delphi sql-server-ce tadoquery

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

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

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

    SELECT * FROM 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;

0 个答案:

没有答案