好像SQL语句有问题吧。
应该是
UPdate TableName
set FieldName = FieldValue , ...
where FieldName = FieldValue

解决方案 »

  1.   

    是sql语句的问题,可我修改后出现了Table read only的错误,是什么原因
      

  2.   

    不会吧,这是SQL语句啊,不应该地啊。这个错误我见过,不过好像没有因为SQL语句导致这个错误。麻烦你在贴代码了。
      

  3.   

    第一个错误是因为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;
      

  4.   

    我在execsql 前加个   prepare;
    就会出现table read only的错误
    去掉后正常
      

  5.   

    我想问一下,你们在用query控件的时候,用prepare的方法吗?
      

  6.   

    如果用了ParamByName的话一般要用prepare的啊
      

  7.   

    Prepare不用也可以,不过用就出现了这个错误,倒是非常奇怪。
    不过既然不用是正常的,那么就不用吧。
      

  8.   

    send me email ,i give you code
      

  9.   

    你应该先把数据库关闭,即
    with query1 do
     begin   
         close;
         sql.Clear;
         ...
    end;