菜鸟求救::::我怎样可以把同一个FORM中的多个数据分别存入3个数据表中:
  比如我想pagecontrol中的三个page中的数据分别存入三个数据表,该怎样写语句啊?
我会存到一个单独的表中:
var
  AdoQuery1:TAdoQuery;
begin
      adoquery1:=TAdoQuery.Create(self);
      adoquery1.Connection:=adoconnection1;
      adoquery1.close;
      adoquery1.sql.clear;
      adoquery1.sql.add('insert into MAIN ( 姓名,年龄,出生年月,性别,民族,政治面貌,婚否,原籍,身份证号,操作员,最后操作时间)values(:s1,:s2,:s3,:s4,:s5,:s6,:s7,:s8,:s9,:s10,:s11 )');
      adoquery1.Parameters.Clear;
      adoquery1.Parameters.AddParameter;
      adoquery1.Parameters[0].name:='s1';
      adoquery1.Parameters[0].DataType:=ftstring;
      adoquery1.Parameters[0].Direction:=pdinput;
      adoquery1.Parameters[0].Value:=edit2.text;
      adoquery1.Parameters.AddParameter;
      adoquery1.Parameters[1].name:='s2';
      adoquery1.Parameters[1].DataType:=ftstring;
      adoquery1.Parameters[1].Direction:=pdinput;
      adoquery1.Parameters[1].Value:=edit5.text;
      adoquery1.Parameters.AddParameter;
      adoquery1.Parameters[2].name:='s3';
      adoquery1.Parameters[2].DataType:=ftdatetime;
      adoquery1.Parameters[2].Direction:=pdinput;
      adoquery1.Parameters[2].Value:=StrToDate(maskedit4.text);
      adoquery1.Parameters.AddParameter;
      adoquery1.Parameters[3].name:='s4';
      adoquery1.Parameters[3].DataType:=ftstring;
      adoquery1.Parameters[3].Direction:=pdinput;
      adoquery1.Parameters[3].Value:=combobox1.text;
      adoquery1.Parameters.AddParameter;
      adoquery1.Parameters[4].name:='s5';
      adoquery1.Parameters[4].DataType:=ftstring;
      adoquery1.Parameters[4].Direction:=pdinput;
      adoquery1.Parameters[4].Value:=edit6.text;
      adoquery1.Parameters.AddParameter;
      adoquery1.Parameters[5].name:='s6';
      adoquery1.Parameters[5].DataType:=ftstring;
      adoquery1.Parameters[5].Direction:=pdinput;
      adoquery1.Parameters[5].Value:=edit4.text;
      adoquery1.Parameters.AddParameter;
      adoquery1.Parameters[6].name:='s7';
      adoquery1.Parameters[6].DataType:=ftstring;
      adoquery1.Parameters[6].Direction:=pdinput;
      adoquery1.Parameters[6].Value:=combobox2.text;
      adoquery1.Parameters.AddParameter;
      adoquery1.Parameters[7].name:='s8';
      adoquery1.Parameters[7].DataType:=ftstring;
      adoquery1.Parameters[7].Direction:=pdinput;
      adoquery1.Parameters[7].Value:=edit7.text;
      adoquery1.Parameters.AddParameter;
      adoquery1.Parameters[8].name:='s9';
      adoquery1.Parameters[8].DataType:=ftdatetime;
      adoquery1.Parameters[8].Direction:=pdinput;
      adoquery1.Parameters[8].Value:=StrToDate(maskedit4.text);
      adoquery1.Parameters.AddParameter;
      adoquery1.Parameters[9].name:='s10';
      adoquery1.Parameters[9].DataType:=ftstring;
      adoquery1.Parameters[9].Direction:=pdinput;
      adoquery1.Parameters[9].Value:=edit18.text;
      adoquery1.Parameters.AddParameter;
      adoquery1.Parameters[10].name:='s11';
      adoquery1.Parameters[10].DataType:=ftdatetime;
      adoquery1.Parameters[10].Direction:=pdinput;
      adoquery1.Parameters[10].Value:=StrToDate(maskedit1.text);
      adoquery1.ExecSQL;
      adoquery1.Close;
可是不会将3个page中数据一次存到3个表中,请问能解决吗?  谢谢了,    请回复[email protected]

解决方案 »

  1.   

    adoquery1.sql.add('insert into MAIN ( 姓名,年龄,出生年月,性别,民族,政治面貌,婚否,原籍,身份证号,操作员,最后操作时间)values(:s1,:s2,:s3,:s4,:s5,:s6,:s7,:s8,:s9,:s10,:s11 )');
    //////////////////MAIN 换成另外的表名,后面的代码类似
      

  2.   

    我要按一button时同时完成对这三个表的信息存储,这样可以吗?
      

  3.   

    你是不是三个表都是一样的...如果是的话,可以先添加到一个临时表,然后把临时表的记录再追加到三个表里呀...sql.add('insert into 表1 Select * from 临时表');
      

  4.   

    我要按一button时同时完成对这三个表的信息存储,这样可以吗?////////////////////////////////////////////////////////////其实你只要组合出SQL语句就可以了:var
      AdoQuery1,AdoQuery2,AdoQuery3:TAdoQuery;
      
    begin
          adoquery1:=TAdoQuery.Create(self);
          adoquery2:=TAdoQuery.Create(self);
          adoquery3:=TAdoQuery.Create(self);
          adoquery1.Connection:=adoconnection1;
          adoquery2.Connection:=adoconnection1;
          adoquery3.Connection:=adoconnection1;
          adoquery1.close;
          adoquery1.sql.clear;
          adoquery1.sql.add('insert into MAIN ( 姓名,年龄,出生年月,性别,民族,政治面貌,婚否,原籍,身份证号,操作员,最后操作时间)values(:s1,:s2,:s3,:s4,:s5,:s6,:s7,:s8,:s9,:s10,:s11 )');
          adoquery1.Parameters.ParamByName('s1').Value:=edit2.text;
          adoquery1.Parameters.ParamByName('s2').Value:=edit5.text;
          //....      adoquery2.close;
          adoquery2.sql.clear;
          adoquery2.sql.add('insert into 表2 ( 姓名,年龄,出生年月,性别,民族,政治面貌,婚否,原籍,身份证号,操作员,最后操作时间)values(:s1,:s2,:s3,:s4,:s5,:s6,:s7,:s8,:s9,:s10,:s11 )');
          adoquery2.Parameters.ParamByName('s1').Value:=edit2.text;
          adoquery2.Parameters.ParamByName('s2').Value:=edit5.text;
          //....      adoquery3.close;
          adoquery3.sql.clear;
          adoquery3.sql.add('insert into 表3 ( 姓名,年龄,出生年月,性别,民族,政治面貌,婚否,原籍,身份证号,操作员,最后操作时间)values(:s1,:s2,:s3,:s4,:s5,:s6,:s7,:s8,:s9,:s10,:s11 )');
          adoquery3.Parameters.ParamByName('s1').Value:=edit2.text;
          adoquery3.Parameters.ParamByName('s2').Value:=edit5.text;
          //....
          //用事务控制数据完整性
          adoconnection1.BeginTrans;
          try
              adoquery1.execsql;
              adoquery2.execsql;
              adoquery3.execsql;
              adoconnection1.CommitTrans;
          except
              adoconnection1.RollbackTrans;
          end;
            
      

  5.   

    你可以写得更简单些
    var
      SQLSTR:string;  
    begin
         sqlstr:='insert into MAIN ( 姓名,年龄,出生年月,性别,民族,政治面貌,婚否,原籍,身份证号,操作员,最后操作时间)values(:s1,:s2,:s3,:s4,:s5,:s6,:s7,:s8,:s9,:s10,:s11 )'+#13;
          sqlstr.Parameters.ParamByName('s1').Value:=edit2.text;
          sqlstr.Parameters.ParamByName('s2').Value:=edit5.text;
          //.... sqlstr:=sqlstr+'insert into 表2 ( 姓名,年龄,出生年月,性别,民族,政治面貌,婚否,原籍,身份证号,操作员,最后操作时间)values(:s1,:s2,:s3,:s4,:s5,:s6,:s7,:s8,:s9,:s10,:s11 )'+#13;
          sqlstr.Parameters.ParamByName('s1').Value:=edit2.text;
          sqlstr.Parameters.ParamByName('s2').Value:=edit5.text;
          //....  sqlstr:=sqlstr+'insert into 表3 ( 姓名,年龄,出生年月,性别,民族,政治面貌,婚否,原籍,身份证号,操作员,最后操作时间)values(:s1,:s2,:s3,:s4,:s5,:s6,:s7,:s8,:s9,:s10,:s11 )';
          sqlstr.Parameters.ParamByName('s1').Value:=edit2.text;
          sqlstr.Parameters.ParamByName('s2').Value:=edit5.text;
          //....
          //用事务控制数据完整性
          adoconnection1.BeginTrans;
          try
             adoconection1.execute(sqlstr);
             aoconnection1.CommitTrans;
          except
              adoconnection1.RollbackTrans;
          end;