Конференция "Базы" » delphi 10 + ADOQuery.Parameters = параметр не найден
 
  • Vladimir3466 (18.09.10 01:03) [0]
    всем привет
    народ подскажите в чом может быть проблема в 9 дельфе
    привиденный ниже код работает , а в 10 делфе во время выполнения выдает ошибку : не найден параметр  :a1.
    в качестве сервера access

    ADOConnection.LoginPrompt := False;
    ADOConnection.ConnectionString := connectstr;

    try
       ADOQuery.SQL.Clear;
       ADOQuery.Parameters.Clear;
       ADOQuery.Close;

        ADOQuery.SQL.text:='UPDATE [MAIN] SET [PROVERKA]= ''PR'',   [CP]= ''PR'' WHERE [NOMER]= :a1';
          ADOQuery.Parameters.ParseSQL(ADOQuery.SQL.text, true);
         ADOQuery.Parameters.ParamValues['a1']:=s;  //s: string
        ADOQuery.ExecSQL;

    finally
     ADOQuery.Parameters.Clear;
     ADOQuery.SQL.Clear;
     ADOQuery.Close;
     ADOConnection.Close;
    end;
  • sniknik © (18.09.10 09:24) [1]
    вряд ли в 9-ке, скорее в том что делаешь не думая. наворотил кучу бессмысленных действий, не понимая зачем и как они работают, а после обвиняешь кого то кто в них запутался...

    убери все лишнее. и используй ParamByName, он привычнее как то.
  • Ega23 © (18.09.10 11:00) [2]

    > народ подскажите в чом может быть проблема в 9 дельфе


    Проблема в программисте.

    with ADOCommand do
    begin
     CommandText := 'UPDATE [MAIN] SET [PROVERKA]= ''PR'',   [CP]= ''PR'' WHERE [NOMER]= :a1';
     Parameters.ParamByName('a1').AsInteger := 10;
     try
       Execute;
     except on E: Exception do
       begin

       end;
     end;
    end;

  • Vladimir3466 (18.09.10 21:00) [3]
    изначально использовалось именно
    //   ADOQuery.Parameters.ParamByName('a1').DataType := ftstring;
    //  ADOQuery.Parameters.ParamByName('a1').Value:=s;

    но ошибка таже не найден параметр a1

    щас попробую вариант от ega23
 
Конференция "Базы" » delphi 10 + ADOQuery.Parameters = параметр не найден
Есть новые Нет новых   [134431   +16][b:0][p:0.001]