为什么我用ADOQuery2.SQL.Add('insert '+ ComboBox2.Text+' values(‘:a,:b');
程序可以运行得好好地,而用
ADOQuery2.SQL.Add('insert '+ ComboBox2.Text+' values(');
     ADOQuery2.SQL.Add(':'+'a'+',');
     ADOQuery2.SQL.Add(':'+'b'+''''+')');
却总是卡死,CPU占用100%,不能动了???????

解决方案 »

  1.   

    values(‘:a  这个引号是什么
      

  2.   

    ADOQuery2.SQL.Add(':'+'b'+''''+')');//多了一个引号ADOQuery2.SQL.Add(':'+'b'+')');
      

  3.   

    var
      SSql: String;
    begin
      SSql := Your SSql;
      ADOQuery2.SQL.Add(SSql);
      ADOQuery2.ExecSQL;
    end;
      

  4.   

    var
      ParaA:string;
    寫參數我習慣
    with adoquery1 do
      begin
        close; 
        sql.clear;
        sql.add(select * from tableA);
        sql.add(  where FieldA='+''''+ParaA+'''');
        open;
      end;
      

  5.   

    打错了是ADOQuery2.SQL.Add('insert '+ ComboBox2.Text+' values(:a,:b);
    ADOQuery2.SQL.Add('insert '+ ComboBox2.Text+' values(');
         ADOQuery2.SQL.Add(':'+'a'+',');
         ADOQuery2.SQL.Add(':'+'b'+')');
    在程序上没有输错,大家再看看有什么问题
      

  6.   

    ADOQuery2.SQL.Add('insert '+ ComboBox2.Text+' values(');
         ADOQuery2.SQL.Add(':a,');
         ADOQuery2.SQL.Add(':b)');
    这样行不行啊?
      

  7.   

    楼主的习惯不好,一个字符串干什么搞的这么麻烦?
    ADOQuery2.SQL.Add('insert '+ ComboBox2.Text+' values(‘:a,:b');
    这个也不是很对,怎么能没问题呢? 感觉应该
    ADOQuery2.SQL.Add('insert '+ ComboBox2.Text+' values(:a,:b)');吧?
      

  8.   

    在SQL语句中碰到字符串需要加引号时,建议大家使用QuotedStr,这样不容易搞错。
    例如:
    Query.sql.add('select * from Iuser where username='+QuotedStr('NAYAYA'))
      

  9.   

    用這種試試 
    with Dml1.Adoquery1 do
              begin
                 SQL.clear;
                 SQL.Add('insert into '+ ComboBox2.Text+'');
                 SQL.Add('values (:V1,:V2,:V3)');
                 Parameters.ParamByName('V1').value:=strtoint(Trim(EdtNo.Text));
                 Parameters.ParamByName('V2').value:=Trim(EdtName.Text);
                 Parameters.ParamByName('V3').value:=Trim(EdtSex.Text);
                 Prepared;
                 ExecSQL;
                 Dml1.adoTable1.Active:=False;
                 Dml1.adoTable1.Active:=true;
              end