EDBEngineError'表只读'

时间:2011-12-06 06:07:48

标签: sql-server delphi bde

我有3个TQueriesqy_master, qy_detail, qy_detail2qy_detail2的主人是qy_detailqy_detail的主人是qy_Master,所有查询都有相应的数据源,我在datamodule中放置了查询,当datamodule创建时我激活了这些查询。

在另一种形式中我使用了这些查询,在尝试'qy_detail.open'时它显示'EDbengine error : Tables is read-only'但在打开qy_detail时没问题,我不修改SQL语句,但我不知道为什么会发生这种错误。

我也试过qy_detail.Active := True;这句话也引起了错误,

我使用通过BDE和ODBC数据源连接的SQL Server 2005。

请有人帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

你设置TQuery.RequestLive = true吗?默认情况下,RequestLive为False,强制查询始终作为只读结果集返回。

来自documentation

  

TQuery可以返回两种结果集:与TTable一样“live”   组件(用户可以使用数据控件编辑数据,以及调用时   发生更改后发送到数据库),“只读”显示   目的而已。要请求实时结果集,请设置查询组件   RequestLive属性为True ...