Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Параметры хранимой процедуры [D6, IB6.x]


me2 ©   (2003-06-05 16:19:00) 

Имеется ХП с рядом параметров и временная таблица с данными. Некоторые поля в таблице могут быть NULL. ХП в качестве параметров принимает значения полей временной таблицы, например так:
DM.spInsertImMaterialItem.ParamByName("i_serial_num").AsString := DM.tblTempIn["serial_num"];
Так вот если поле "serial_num" имеет значние, то все ОК, а если оно NULL, то ошибка конвертивания вариантов.
Подскажите способ решения данной проблемы?


me2   (2003-06-05 16:43:00) [1]

2 Johnmen © (05.06.03 16:23)
Прошу прощения, поторапился. Так работает. Спасибо.


Johnmen   (2003-06-05 16:40:00) [2]

>me2 (05.06.03 16:27)

Не может быть !
А какие компоненты доступа ?


KoluChi   (2003-06-05 16:36:00) [3]

DM.spInsertImMaterialItem.ParamByName("i_serial_num").Value := DM.tblTempIn["serial_num"];

или

DM.spInsertImMaterialItem.ParamByName("i_serial_num").AsString := VarToStr(DM.tblTempIn["serial_num"]);


Ann   (2003-06-05 16:32:00) [4]

Я бы так написала
DM.spInsertImMaterialItem.ParamByName("i_serial_num").clear;


Sandman25   (2003-06-05 16:31:00) [5]

if DM.tblTempIn.FieldByName("serial_num").isNull then
DM.spInsertImMaterialItem.ParamByName("i_serial_num").Clear
else
DM.spInsertImMaterialItem.ParamByName(i_serial_num").AsString := DM.tblTempIn.FieldByName("serial_num").AsString


me2   (2003-06-05 16:27:00) [6]

2 Johnmen © (05.06.03 16:23)
Это не помагает. В ...:= DM.tblTempIn.FieldByName("serial_num").AsString; тогда возникнет ошибка преобразования.


me2   (2003-06-05 16:24:00) [7]

А если что-то при помощи Variants?


Johnmen   (2003-06-05 16:23:00) [8]

... := DM.tblTempIn.FieldByName("serial_num").AsString;


Sandman25   (2003-06-05 16:22:00) [9]

if Field1.isNull then Field2.Clear
else Field2.asString := Field1.asString;


Наверх

Титульная страница Поиск, карта сайта Написать письмо