请教各位高手一个问题:在编程中怎么样才能在select 语句使用变量?比如 :
adoquery1.sql.Add('select * ');
adoquery1.sql.Add('from table1 ');
adoquery1.sql.Add('where name=:i');其中i为一个string变量。我试过这样不行,怎样表达才对?

解决方案 »

  1.   

    with adoquery1 do 
    begin
      close;
      sql.clear;
      sql.add('select * from yourtable where yourfield=:MyField');
      parambyname('myField').asString:=edit1.text;
      prepare;
      open;
    end;
      

  2.   

    adoquery1.sql.Add('where name='':i''');
      

  3.   

    adoquery1.close
    adoquery1.sql.clear
    tmpstr := 'name';
    sqlstring := 'select * from employee where name="' + tmpstr + '"';
       adoquery1.SQL.Add(sqlstring);
       adoquery1.Active := true;
      

  4.   

    adoquery1.sql.Add('select * ');
    adoquery1.sql.Add('from table1 ');
    adoquery1.sql.Add('where name=:i')
    这中写法太累。建议换换^_^
      

  5.   

    with adoquery1 do 
    begin
      close;
      sql.clear;
      sql.add('select * from tablename where name=:i');
      parambyname('i').value=edit1.text;
      prepare;
      open;
    end;
      

  6.   

    呵呵多谢各。小弟又找到了另一种方法就是:sql.add(where myfield='+''''+i+'''')
      

  7.   

    sql.add(where myfield='+#39+i+#39)
      

  8.   

    sql.add(where myfield='''+i+'''')
      

  9.   

    高效快速莫过于将Sql 语句格式化
    例:
    with adoquery1 do 
    begin
      close;
      sql.clear;
      sql.add(Format('select * from tablename where name=''%s''',[Edit1.text]));//速度比一般的直接写的SQL语句快
      open;
    end;
      

  10.   

    with adoquery1 do 
    begin
      close;
      sql.clear;
      sql.add('select * from yourtable where yourfield=:MyField');
      parambyname('myField').asString:=edit1.text;
      prepare;
      open;
    end;