最好不要直接用query修改数据,
用UpdataSql
因为直接用query修改数据不安全。
还有,用query前先写上:
query1.close;
query1.unprepare;
query1.sql.clear;
query1.sql.add('你的SQL语句');
query1.prepare;
query1.open(或query1.execsql);

解决方案 »

  1.   

    谢谢三位了我的程序语句如下//前边是一段update语句不会有问题的
    with query1 do
    begin
      close;
      sql.clear;
      sql.add('update table set p_id='''+s+''' where p_id=''8''');  
      //s值为1 (string)
      execsql;  close;
      sql.clear;
      sql.add('select * from table where p_id='''+s+'''');  //s值为1 (string)
      open;
      //Query2.RequestLive :=true; 这里设定true了
    end;//然后在dbgrid中修改记录 提示出错
      

  2.   

    用query1修改了记录后,
    应:query2.close;query2.open;
      

  3.   

    是不是用query1来updata,用query2来select的?
    还有你不要把query2的CachedUpdates属性设为TRUE,要FALSE。不然会出错的。
    再者,你可以在query2的AfterScroll事件中写query2.edit; 以保持query2为修改状态。
    但我还是要劝你,不要直接用query进行数据操作,很不安全的。我就吃过苦了!
      

  4.   

    不用query用什么(我是真的不知道,诚心请教)