Конференция "Базы" » ADOQuery [D7, MSAccess]
 
  • amadey_motzart (08.12.08 11:42) [0]
    Доброго дня, Мастера!
    Есть динамический запрос:
    Query1.Close;
       Query1.SQL.Clear;
       Query1.Parameters.ParamByName('D1').Value:=listbox1.Items.Strings[(listbox1.item index)];
       Query1.SQL.Add('select * from place Where data=:D1');

       Query1.Open;
    пишетт: Параметр D1 не найден :-(
    вопрос: в чем причина и как правильно передавать параметр в динамический запрос ADOQuery?
  • ANB (08.12.08 11:43) [1]
    Query1.Close;
    Query1.SQL.Text := 'select * from place Where data=:D1';   Query1.Parameters.ParamByName('D1').Value:=listbox1.Items.Strings[(listbox1.item  index)];
  • amadey_motzart (08.12.08 11:46) [2]
    Параметр D1 not found .......
  • Ega23 © (08.12.08 11:58) [3]
    Если совсем правильноЮ то:


    var
     param : TParameter;

    begin
    with Query1 do
    begin
     if Active then Close;
     parameters.Clear;
     SQL.Text := 'Select * from place where data=?';
     param := parameters.AddParam;
     param.Name := 'D1';
     param.DataType = ... (вот тут я не знаю, какой у тебя тип данных. Сам выбирай)
     param.Direction := pdInput;
     
     Parameters.PramByName('D1').Value := ... (зависит от типа параметра)

     try
       Open;
     except
       ....
     end;

    end;


 
Конференция "Базы" » ADOQuery [D7, MSAccess]
Есть новые Нет новых   [134477   +39][b:0][p:0.001]