Delphi 3 и создание приложений баз данных

       

Указание значения NULL для параметров


Значение NULL показывает отсутствие значения в поле или присутствие неопределенного значения. Для числовых полей значение 0 и пустая строка " для строковых полей - это вполне определенные значения, отличные от NULL (значение неопределенное).

Часто при добавлении или корректировки записей (SQL-операторы INSERT, UPDATE) необходимо указать значение NULL для какого-либо параметра. Для этого следует выполнить метод Clear компонента ТРаrат:

procedure Clear;

Например,

пусть для корректировки записи в таблице RASHOD используется компонент TQuery с именем UpdateQuery, в свойстве SQL которого указан оператор

UPDATE RASHOD

SET DAT_RASH = :new_DAT_RASH,

KOLVO = :new_KOLVO,

TOVAR = :new_TOVAR,

POKUP = :new_POKUP

WHERE

(N_RASH = :old_N_RASH)

Пусть, в частности, значение параметра :new_POKUP (название покупателя) вводится пользователем в компонент TEdit с именем Pokup_Edit. Пусть на значение поля POKUP в таблице RASHOD наложено ограничение, согласно которому значение поля должно либо быть равным NULL, либо совпадать с одним из значений поля POKUP в таблице POKUPATELI.

Если пользователь ввел в поле ввода компонента Pokup_Edit пустую строку ("), присваивание

UpdateQuery.ParamByName('new_POKUP').Value := Pokup_Edit.Text;

и последующее выполнение метода UpdateQuery.ExecSQL приведет к ошибке, поскольку в таблице POKUPATELI нет записи со значением " в поле POKUP. Поэтому в случае, если в Pokup_Edit введена пустая строка, параметру :new_POKUP присваивается значение NULL:

IF Pokup_Edit.Text = '' THEN

ParamByName('new_POKUP').Clear

ELSE

ParamByName('new_POKUP').Value := Pokup_Edit.Text;



Содержание раздела