将DBedit1,DBedit2,DBedit3通过DataSource1与一个ADOQuery1相连.ADOQuery1中有三个字段.前两个字段来自于表1,后一个字段来自表2.DBedit1,DBedit2显示的是ADOQuery1中前两个字段.DBedit3显示的是ADOQuery1的最后一个字段.我的问题是:既能让这3个DBedit控件显示ADOQuery1中的内容,又能通过点击一个添加按钮,将写入前两个DBedit控件中的内容存入表1.而不是添加到ADOQuery1里..因为将数据添加到ADOQuery1里是没有用的.它只是一个查询结果..

解决方案 »

  1.   

    你将数据更新到adoquery,之后,再提交,就是adoquery.post,就能更新到数据库里去了。帮你顶
      

  2.   

    lovend,能不能说的再清楚一点呢?你的意思是在ADOQuery1.append 然后再ADOQuery1.post吧..这样的话,三个edit里面的内容是添加到了ADOQuery1里没错,但是我要的是将前两个edit的内容放入表1里面.而表1里不仅仅包括这两个字段内容,还有其他字段的阿.要有选择的插入到相应的字段下面才行.我就想问这个怎么做
      

  3.   

    直接写SQL语句插入.var
      tmpQry: TADOQuery;
    begin
      tmpQry := TADOQuery.Create(nil);
      tmpQry.Connection := ADOConnection1; //你的数据连接
      try
        ADOConnection1.BeginTrans;
        try
          tmpQry.Close;
          tmpQry.SQL.Clear;
          tmpQry.SQL.Text := Format('insert into 表1(Column1, Column2) values(%s,%s)',
          [DBedit1.Text,DBedit2.Text]);
          tmpQry.ExecSQL;      tmpQry.Close;
          tmpQry.SQL.Clear;
          tmpQry.SQL.Text := Formate('insert into 表2(Column3) values(%s)',
          [DBedit3.Text]);
          tmpQry.ExecSQL;
          ADOConnection1.CommitTrans;
        except
          ADOConnection1.RollbackTrans;
        end;
      finally
        tmpQry.Free;
      end;
    end;