if (eof) and (gxjh <> '') then
          begin //更新井号
            append;
            TableJS['jh'] := cbxJH.text;
            TableJS['kgrq'] := strtodate(edtKGRQ.text);
            TableJS['jb'] := jbdm;
            TableJS['sgdw'] := cbxSGDW.text;
            SGDW := cbxSGDW.TEXT;
            TableJS['sgdwdm'] := sgdwdm1;
            TableJS['rzh1'] := edtGGRZ.text;
            TableJS['rzh2'] := edtSGRZ.text;
            post;
          end
          else
          begin
            edit;
            TableJS['jb'] := jbdm;
            TableJS['sgdw'] := cbxSGDW.text;
            sgdw := cbxSGDW.text;
            TableJS['sgdwdm'] := sgdwdm1;
            TableJS['rzh1'] := edtGGRZ.text;
            TableJS['rzh2'] := edtSGRZ.text;
            post;

解决方案 »

  1.   

    insert into table (field1,....) values (val1,....)
    update table set field1=val,.... where ....
      

  2.   

    append  在数据集的最后位置添加一个空记录
    edit    进入编辑状态
    insert into  插入记录
    update       修改记录
    使用ODAC组件的OraTable和OraQuery时,append,edit是无效的?
    是不是该用sql语句 insert into ,update 
    提示我'can not modify a read-only dataset'
      

  3.   

    数据库没在编辑状态下,你得
    with 数据库 do
    begin
    。。
    end;
    吧?
      

  4.   

    看了网上一些介绍的,说是要用OraupdateSQL配合OraQuery~!
    看了UpdateSQL里面自动生成的语句,不太理解。
    动态的在程序里面怎么写呢。
      

  5.   

    5楼的,前面的代码我没粘,有的,我自己感觉问题出在append和edit。不知道是不是这样
      

  6.   

    if (eof) and (gxjh  <> '') then 
              begin //更新井号
                 close;
               sql.clear;
               sql.text:='insert tablename (jh,kgrq,jb,sgdw,sgdwdm,rzh1,rzh2) value '''+cbxJH.text
    +','''+strtodate(edtKGRQ.text)+','''+jbdm+','''+cbxSGDW.text+','''+sgdwdm1+','''+edtGGRZ.text+','''+edtSGRZ.text'''';
               execsql;
              end 
              else 
              begin 
                 close;
               sql.clear;
               sql.text:='update tablename set jb='''+jbdm+''',sgdw......
              execsql;
              end