用update对表进行更新时出现"table is read_only"错误(100分)

  • 主题发起人 主题发起人 chyn.1
  • 开始时间 开始时间
C

chyn.1

Unregistered / Unconfirmed
GUEST, unregistred user!
有一表用Ttable的Edit编辑,后用POST语句提交,然后用TQUERY 的UPDATE对该表中的部分
字段进行更新,总出现Table is read only,程序如下:
table1.post;
table1.edit;

with query1 do
begin
close;
sql.clear;
sql.add('update ...');
......
prepare;
execsql;
当单独做一个小程序时,更新正常,但按此方式放入我的程序中时就总出现此问题。
请教各位!
 
因你刚对表进行了编辑操作,事务尚未提交.数据表处于
锁定状态,不能进行编辑.DataBase.Commit后就可以了.
 
我并未使用事务,只是使用post语句保存记录后,就用相同的信息更新刚刚保存的
一批记录。另外,请教一下如何使用database.
 

DataBase用于连接一个数据库,并创建应用程序自己的DBE别名.
它还可以,开始、结束、提交一个事务等。
 
你的表正处于编辑状态呢!
在上面的语句中,你不妨这样写:
table1.post;
//table1.edit;

with query1 do begin
close;
sql.clear;
sql.add('update ...');
......
prepare;
execsql;
end;
 
>>有一表用Ttable的Edit编辑,后用POST语句提交,然后用TQUERY 的UPDATE对该表中的
>>部分字段进行更新,总出现Table is read only,
为什么作两次更新的动作?您试着只用TQUERY修改就行了.
您的出错还可能是这样:Another user has changed the record...

或者:
>> 我并未使用事务,只是使用post语句保存记录后
您试试把TABLE断开.再
>> 就用相同的信息更新刚刚保存的一批记录。另外(我没有试,此方法不一定可以)
>>请教一下如何使用database.
放一个Tdatabase元件,其它Ttable或TQUERY 元件与这个database连上就行了.


 
对啊,直接使用QUERY用SQL修改数据库不就可以了?干什么还要
在前面加一个TABLE呢?
 
多人接受答案了。
 
后退
顶部