在使用query控件动态sql是,where里使用参数 比如 where 姓名=:name,name变量在哪儿定义?怎么定义?这样查询一次取出多个记录,有没有游标之类的概念一次取出一个??

解决方案 »

  1.   

    经常name是一个要你输入了Edit,这就是你的那么
    例query1->SQL->Add("Seletc Name 
                       from Student
                       where name=Edit1->Text")
    以上为C++Builder写法
      

  2.   

    Query1.Close
    Query1.SQL.Text := 'Seletc Name from Student where name=:name';
    Query1.Parameters.ParamByName('name').Value := Edit1.Text;
    Query1.Open;
      

  3.   

    1:
    with query1 do
    begin
      close;
      sql.clear;
      sql.add('select * from table where single_no=:single_no');
      params[0].asstring:='abc';  //條件值
      prepare;
      Open;
      unprepare;
    end;2:
    返回值為字段single_no='abc'的所有記錄。
      

  4.   

    该根本不要定义,是系统处理的
    到时候你只要传递信息给它就行
    With Query1 Do
    Begin
      Close ;
      Sql.Clear ;
     Sql.Add('Select * From 表名 Where 姓名=:Name');
     ParamByName('Name').AsString := EditName.Text ;
    或者
      Sql.Add('Select * From 表名 Where 姓名='#39+EditName.Text+#39);
      Open ;
    End ;
      

  5.   

    Query1中的sql中的=是不用加“:”的,你这样试试:
    With Query1 Do
    Begin
      Close ;
      Sql.Clear ;
     Sql.Add('Select * From 表名 Where 姓名=’#39+EditName.Text+#39);
      open;
    End ;
      

  6.   

    还有,在你的sql了就可以加上查x%用top 就可以了
      

  7.   

    问题搞定了,我没有把query1.ParamByName('var1').AsString := var2;写在prepare之前。我还有问题:查询一次取出多个记录,有没有游标之类的概念一次取出一个??感激各位