帮我看看这段简单的代码吧!! 好像SQL语句有问题吧。应该是UPdate TableNameset FieldName = FieldValue , ...where FieldName = FieldValue 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是sql语句的问题,可我修改后出现了Table read only的错误,是什么原因 不会吧,这是SQL语句啊,不应该地啊。这个错误我见过,不过好像没有因为SQL语句导致这个错误。麻烦你在贴代码了。 第一个错误是因为update 表(我的错误在此处,我已经修改),第二个错误会不会是因为query的某个属性没设置好 with query1 do begin try open; sql.Clear; sql.Add('update a_client_server_item '); sql.add('set server_type=:aa,server_content=:bb,re=:cc,type_a=:a,type_b=:b,type_c=:c,type_d=:d,type_e=:e,type_f=:f,type_g=:g,type_h=:h '); sql.add('where id ='+inttostr(query_id)); showmessage(sql.Text); parambyname('aa').asstring:=combobox2.text; parambyname('bb').asstring:=edit4.text; parambyname('cc').asstring:=edit6.text; parambyname('a').asboolean:=checkbox1.Checked; parambyname('b').asboolean:=checkbox2.Checked; parambyname('c').asboolean:=checkbox3.Checked; parambyname('d').asboolean:=checkbox4.Checked; parambyname('e').asboolean:=checkbox5.Checked; parambyname('f').asboolean:=checkbox6.Checked; parambyname('g').asboolean:=checkbox7.Checked; parambyname('h').asboolean:=checkbox7.Checked; execsql; except showmessage('更新出现错误(a_client_server_item)!'); cancel; end; end; 我在execsql 前加个 prepare;就会出现table read only的错误去掉后正常 我想问一下,你们在用query控件的时候,用prepare的方法吗? 如果用了ParamByName的话一般要用prepare的啊 Prepare不用也可以,不过用就出现了这个错误,倒是非常奇怪。不过既然不用是正常的,那么就不用吧。 send me email ,i give you code 你应该先把数据库关闭,即with query1 do begin close; sql.Clear; ...end; ◆问一个引用Dll的问题,好像没人问过◆ 求一个打印分页的解法? 一个语句不明白原因! 如何编程得到和控制一个进程的cpu占用率? 怎么打印DBGrid的内容 简单的查询记录语句,不太明白 请问如何在一个过程里调用一个EDIT控件的KEYDOWN事件呢? 什么才是真正的COM、DCOM、ActiveX编程? 关于DELPHI的安装程序制作! 各位朋友,大哥,给我点提示就行了 是否能使用dephi写服务程序? quickrep和query方面的问题?在线
with query1 do
begin
try
open;
sql.Clear;
sql.Add('update a_client_server_item ');
sql.add('set server_type=:aa,server_content=:bb,re=:cc,type_a=:a,type_b=:b,type_c=:c,type_d=:d,type_e=:e,type_f=:f,type_g=:g,type_h=:h ');
sql.add('where id ='+inttostr(query_id));
showmessage(sql.Text);
parambyname('aa').asstring:=combobox2.text;
parambyname('bb').asstring:=edit4.text;
parambyname('cc').asstring:=edit6.text;
parambyname('a').asboolean:=checkbox1.Checked;
parambyname('b').asboolean:=checkbox2.Checked;
parambyname('c').asboolean:=checkbox3.Checked;
parambyname('d').asboolean:=checkbox4.Checked;
parambyname('e').asboolean:=checkbox5.Checked;
parambyname('f').asboolean:=checkbox6.Checked;
parambyname('g').asboolean:=checkbox7.Checked;
parambyname('h').asboolean:=checkbox7.Checked;
execsql;
except
showmessage('更新出现错误(a_client_server_item)!');
cancel;
end;
end;
就会出现table read only的错误
去掉后正常
不过既然不用是正常的,那么就不用吧。
with query1 do
begin
close;
sql.Clear;
...
end;