我是要修改query里的记录,也涉及这个问题,
query的requestlive属性必须要满足特殊的语法才可以,否则就没有打开
你可以试试先在设置
query.close;
query.requestlive;
query.open;
然后在进行插入操作,,如果可以实现,请在这里告诉我就可以,俺不要分,帮俺回答问题就可以了,哎,,,,,

解决方案 »

  1.   

    wo  xiang  shang  
      

  2.   

    >>query的sql是两个表的操作
    此时你的Query肯定是只读的,无法对其进行添加删除操作
    可以考虑应用UpdateSql控件来进行更新操作
    或者另外用一个Query直接对表进行Update.Insert,Delete操作
      

  3.   

    query1.requestlive:=true;
    with query1 do
    begin
         close;
         sql.clear;
         sql.add('select * from table where 1=2');
         open;
    end;
    with query1 do 
      begin
        append;
        FieldByName('产品名称').asstring := edit1.text;
        FieldByName('型号规格').asstring := edit2.text;
        post;
      end;
      

  4.   

    With Query1 do      ///假设你的Sql语句是这么写的
    begin
      Close;
      Sql.Clear;
      Sql.Add('select a.f1,a.f2,b.f1,b.f2 from a,b where a,f1=b.f3');
      Open;
    end;
    1.放置一个UpdateSql控件UpdateSql1,设置Query1的UpdateObject属性为UpdateSql1
    2.在程序中需要更新(例如:添加)的地方写代码:
      with UpdateSql1 do
      begin
        InsertSql.Clear;
        InsertSql.Add('insert into a (f1,f2,f3)'+  ///f1,f2,f3为字段名
                    'values[值1,值2,值3] where f1=值4');
        ExecSql(ukInsert);///ukinsert--添加,ukUpdate--更新,ukDelete--删除
      end;
     OK!!
      

  5.   

        ExecSql(ukInsert);///ukinsert--添加,ukUpdate--更新,ukDelete--删除
                                            ^^^此处应该为ukModify,(改正)