Страница 1 из 1

TUniQuery не проверяет присвоены ли значения параметров

Добавлено: Пт 23 янв 2015 16:58
VadimMest
Добрый день
Сервер Firebird, UniDAC версии 6.0.1
Вот такой код не выдает ни какой ошибки

UniQuery1.SQL.Clear;
UniQuery1.SQL.Add('select * from customer where id = :idcustomer');
UniQuery1.Open;

Я проверил - свойство UniQuery1.ParamCheck = True;


C уважением, Мещеряков Вадим

Re: TUniQuery не проверяет присвоены ли значения параметров

Добавлено: Пн 26 янв 2015 07:24
ViktorV
Данное поведение TUniQuery корректно. Свойство TUniQuery.ParamCheck не предназначено для проверки присвоения значений параметрам, оно отвечает за включение (отключение) автоматической генерации параметров при изменении свойства SQL. Более подробную информацию об этом свойстве Вы можете получить на нашем сайте: http://www.devart.com/unidac/docs/devar ... mcheck.htm

Re: TUniQuery не проверяет присвоены ли значения параметров

Добавлено: Пн 26 янв 2015 09:46
VadimMest
>Данное поведение TUniQuery корректно.

В других технологиях доступа к данным открытие запроса без присвоения значений параметров выдаст ошибку.
Есть возможность сгенерировать exсeption если параметр не присвоен?

Re: TUniQuery не проверяет присвоены ли значения параметров

Добавлено: Пн 26 янв 2015 13:05
ViktorV
Вы можете использовать обработчик событий TUniQuery.BeforeExecute для генерации требуемого Exception, согласно приведенному ниже коду:

Код: Выделить всё

procedure TForm1.UniQuery1BeforeExecute(Sender: TObject);
begin
  if UniQuery1.ParamByName('id').IsNull then
    raise  Exception.CreateFmt('Не задано значение параматра : ''%s''', [ UniQuery1.ParamByName('id').Name]);
end;

Re: TUniQuery не проверяет присвоены ли значения параметров

Добавлено: Пн 26 янв 2015 13:38
VadimMest
Спасибо.

Re: TUniQuery не проверяет присвоены ли значения параметров

Добавлено: Пн 26 янв 2015 14:00
ViktorV
Обращайтесь к нам, если у Вас возникнут вопросы по UniDAC.