ADOQuery2.Close ;
           ADOQuery2.SQL.Clear ;
           ADOQuery2.SQL.Add('insert into matetype (product,model,standard)');
           ADOQuery2.SQL.Add('value (ET1,ET2,ET3)');
           ADOQuery2.ExecSQL;
           ADOQuery2.Open ;
ET1,ET2,ET3 是String变量,执行时出错请问是什么原因?
这条SQL语句该怎样写?用ShowMessage(ADOQuery2.SQL.GetText)
显示:
insert into matetype (product,model,standard) value (ET1,ET2,ET3)

解决方案 »

  1.   

    ADOQuery2.SQL.Add('insert into matetype (product,model,standard)');
               ADOQuery2.SQL.Add('value (:ET1,:ET2,:ET3)');
    adoquery2.Parameters.ParamValues['eti1']:=et1;
    adoquery2.Parameters.ParamValues['eti2']:=et2;
    adoquery2.Parameters.ParamValues['eti3']:=et3;
    try
      adoquery2.execsql;
    except
    end;
      

  2.   

    Var  Str1 : String;begin  Str1 := 'INSERT INTO matetype (product,model,standad) VALUE (' + ET1 + ',' 
              + ET2 + ',' + ET3 + ')';
      ADOQuery2.SQL.Add(Str1);
      

  3.   

    ADOQuery2.Close ;
               ADOQuery2.SQL.Clear ;
               ADOQuery2.SQL.Add('insert into matetype (product,model,standard)');
               ADOQuery2.SQL.Add('value (:ET1,:ET2,:ET3)');
    Parambyname('ET1').AsString := edit1.Text;
    Parambyname('ET2').AsString := edit2.Text;
    Parambyname('ET3').AsString := edit3.Text;
      

  4.   

    ADOQuery2.Close ;
               ADOQuery2.SQL.Clear ;
               ADOQuery2.SQL.Add('insert into matetype (product,model,standard)');
               ADOQuery2.SQL.Add('value (:ET1,:ET2,:ET3)');
    ADOQuery2.Parameters.ParamByName('ET1').Value:=Edit1.Text;
    ADOQuery2.Parameters.ParamByName('ET2').Value:=Edit2.Text;
    ADOQuery2.Parameters.ParamByName('ET3').Value:=Edit3.Text;
               ADOQuery2.ExecSQL;
               ADOQuery2.Open ;