我的表中各有一个updatesql,query,datasource,dbgrid控件,updatesql控件是通过query的updateobject属性相连的,dbgrid的datasource连接到datasource控件上,datasource控件连接到query控件上,我现在分别写一个新增的代码和一个保存的代码如下:
procedure TForm1.Button1Click(Sender: TObject);  //新增代码
begin
        query1.Active:=true;
        with query1 do
        begin
        append;
        fieldbyname('a').asstring:=edit1.text;
        fieldbyname('b').asstring:=edit2.text;
        fieldbyname('c').asstring:=edit3.text;
        end;
end;procedure TForm1.Button4Click(Sender: TObject);   //保存代码
begin
    query1.CommitUpdates;
    query1.DisableConstraints;
end;
问题一:我的query1中的sql语句为
select * from veiwtest where b=:b and c=:c  我想在保存的同时,把有b,c两 栏相同的记录挑出来在dbgrid1中显示.但我现在这样不行,请问代码怎么改?
问题二:如果我要修改的时候,怎么修改啊

解决方案 »

  1.   

    我的修改代码如下:
     with query1 do
            begin
            edit;
            fieldbyname('a').asstring:=edit1.text;
            fieldbyname('b').asstring:=edit2.text;
            fieldbyname('c').asstring:=edit3.text;        end;
    只要我一提交就会出错,说什么"update failed"
    还有删除的时候也是这样,请问怎么解决这个修改和删除保存的时候出错的问题?
      

  2.   

    Query 连到 UpdateSQL ,将UpdateSQL的InsertSQL,UpdateSQL,DeleteSQL都设置了 。 DataBase1为链接数据库的ADOConnection/DataBase  新增的保存 :
      if DataBase1.InTransaction then DataBase1.Rollback;
      DataBase1.StartTransaction;
      try
        begin
          Query1.ApplyUpdates; //
        end;
        DataBase1.Commit;
      except
        Application.MessageBox('保存数据时出错!', '数据库错误', MB_OK+MB_ICONERROR);
        DataBase1.Rollback;
        Exit;
      end;
      

  3.   

    删除同样 ,用 Query.ApplyUpdates ;
      

  4.   

    DataBase1为链接数据库的BDE : DataBase
      

  5.   

    是用ado控件好,还是用query+updatesql控件好啊???????????????????/
      

  6.   

    要是用query+updatesql的目的和用Query(通过DBE)相同,还不如用ADO   
    个人看法
      

  7.   

    query有个属性叫CacheUpdate要设置为true,是否已经设置??