adoquery1.close;
adoquery1.sql.clear;
adoquery1.SQL.Add('insert 。 ');
adoquery1.SQL.Add('insert 。 ');
adoquery1.ExecSQL;

解决方案 »

  1.   

    可以的
    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.SQL.Add('insert field1 value1,fields2 value2.。 ');
    adoquery1.ExecSQL;
      

  2.   

    我忘了说明一点:我的两个插入语句都用到了动态参数。而两个语句中某些参数使用的变量一样,所以我使用了相同的参数名。例如:adoquery1.Parameters.ParamByName('操作员代码').value:=edit1.text中的'操作员代码'便在两个语句中都作为动态参数,这样难道就会出错吗?
      

  3.   

    目前能通过的代码如下:
    if ADOConnection1.InTransaction=true then
      begin
       application.MessageBox('系统正在处理其他数据,请稍候再执行此操作!','提示',mb_ok+mb_iconinformation);
       exit;
      end;
      ADOConnection1.BeginTrans;
      adoquery1.close;
      adoquery1.sql.clear;
      adoquery1.SQL.Add('insert 登录信息表 (操作员代码) values (:操作员代码)');
      dataunit.DataModule1.adoquery1.Parameters.ParamByName('操作员代码').value:=edit1.text;
      dataunit.DataModule1.adoquery1.ExecSQL;
      dataunit.DataModule1.adoquery1.close;
      dataunit.DataModule1.adoquery1.sql.clear;
      dataunit.DataModule1.adoquery1.SQL.Add('insert 日志信息表 (操作员代码) values (:操作员代码)');
      dataunit.DataModule1.adoquery1.Parameters.ParamByName('操作员代码').value:=edit1.text;
        dataunit.DataModule1.adoquery1.ExecSQL;
      try
       dataunit.DataModule1.ADOConnection1.CommitTrans;
      except
       dataunit.DataModule1.ADOConnection1.RollbackTrans;
       application.MessageBox('此次登录由于某种原因而失败!','提示',mb_ok+mb_iconinformation);
       exit;
      end;以上代码中,用了两个dataunit.DataModule1.adoquery1.ExecSQL;语句。两次提交中的动态参数一样,这样的形式能通过,但如果放在一次提交中便不行。
      

  4.   

    请问两个adoquery1不是一个吗?真不明白你的思路,你是不是想在两个窗体处理不同的表(登录信息表 ,日志信息表)?
      
      

  5.   

    如果我没有理解错误,你的程序完全可以这样:
    with dataunit.DataModule1 do
    begin
    if .ADOConnection1.InTransaction=true then
      begin
      application.MessageBox('系统正在处理其他数据,请稍候再执行此操作!','提示',mb_ok+mb_iconinformation);
      exit;
      end;
      ADOConnection1.BeginTrans;
      adoquery1.close;
      adoquery1.sql.clear;
      adoquery1.SQL.Add('insert 登录信息表 (操作员代码) values ('''+edit1.text+''')');
      dataunit.DataModule1.adoquery1.SQL.Add('insert 日志信息表 (操作员代码) values ('''+edit1.text+''')');    
      adoquery1.ExecSQL;
      try
      ADOConnection1.CommitTrans;
      except
      ADOConnection1.RollbackTrans;
      application.MessageBox('此次登录由于某种原因而失败!','提示',mb_ok+mb_iconinformation);
      exit;
      end;
    end;
      

  6.   

    前面一点错误:
    with dataunit.DataModule1 do
    begin
    if .ADOConnection1.InTransaction=true then
      begin
      application.MessageBox('系统正在处理其他数据,请稍候再执行此操作!','提示',mb_ok+mb_iconinformation);
      exit;
      end;
      ADOConnection1.BeginTrans;
      adoquery1.close;
      adoquery1.sql.clear;
      adoquery1.SQL.Add('insert 登录信息表 (操作员代码) values ('''+edit1.text+''')');
      adoquery1.SQL.Add('insert 日志信息表 (操作员代码) values ('''+edit1.text+''')');    
      adoquery1.ExecSQL;
      try
      ADOConnection1.CommitTrans;
      except
      ADOConnection1.RollbackTrans;
      application.MessageBox('此次登录由于某种原因而失败!','提示',mb_ok+mb_iconinformation);
      exit;
      end;
    end;