Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2008, 11:03   #1
KeyDok
 
Регистрация: 28.11.2006
Сообщений: 7
Вопрос Обработка значения Null в sql запросе

имеется небольшой запрос -
sqlPrSkl.Active :=False;
sqlPrSkl.SQL.Clear;
sqlPrSkl.SQL.Add('SELECT Num_Doc, Nazv_P, Kod_Vid, Kod_Prod, Kod_Sub_P, Artikul_P, KOD_RAZD, N_Prod1, Price_Net1, Summ_Net1, N_Prod2, Price_Net2, Summ_Net2, SUMM_Net');
sqlPrSkl.SQL.Add('FROM Dinc.dbf');
sqlPrSkl.SQL.Add('WHERE N_S_TO='+quotedstr(inttostr(intSek) )+' and DATE_DOC='+quotedstr(datetostr(dtDa te.Date))+' and L_VOZV_P=FALSE');
sqlPrSkl.SQL.Add('ORDER BY KOD_Sub_P, Num_Doc');
sqlPrSkl.Active :=True;

Запрос работает нормально, но вот проблемма возникает когда я пытаюсь присвоить значение одного поля текстовой переменной... проблемма возникает из за того что в поле значение NULL и компилятор не может конвертировать его в текст... пытался с помощью функции -
sqlPrSkl.FieldByName('Artikul_P').I sNull<>False
обработать, но она почемуто неработает, просто не срабатывает, как поступить??? Как обработать это NULL значение ????
Язык нам дан для того, чтобы скрывать свои мысли!!!
KeyDok вне форума Ответить с цитированием
Старый 10.07.2008, 12:27   #2
ANB
 
Регистрация: 10.07.2008
Сообщений: 3
По умолчанию

Я не работал с DBF, но в принципе должно быть одинаково, примерно так:
if sqlPrSkl.FieldByName('Artikul_P').I sNull then S:=''
else S:=sqlPrSkl.FieldByName('Artikul_P' ).AsString;
ANB вне форума Ответить с цитированием
Старый 10.07.2008, 12:42   #3
Flenov
Форумчанин
 
Аватар для Flenov
 
Регистрация: 20.06.2008
Сообщений: 168
По умолчанию

А попробуй IsEmpty
Flenov вне форума Ответить с цитированием
Старый 10.07.2008, 14:18   #4
KeyDok
 
Регистрация: 28.11.2006
Сообщений: 7
По умолчанию А поконкретнее про IsEmpty

А поконкретнее про IsEmpty
Язык нам дан для того, чтобы скрывать свои мысли!!!
KeyDok вне форума Ответить с цитированием
Старый 10.07.2008, 14:22   #5
KeyDok
 
Регистрация: 28.11.2006
Сообщений: 7
По умолчанию

Цитата:
Сообщение от ANB Посмотреть сообщение
Я не работал с DBF, но в принципе должно быть одинаково, примерно так:
if sqlPrSkl.FieldByName('Artikul_P').I sNull then S:=''
else S:=sqlPrSkl.FieldByName('Artikul_P' ).AsString;
Неработает....!
Язык нам дан для того, чтобы скрывать свои мысли!!!
KeyDok вне форума Ответить с цитированием
Старый 11.07.2008, 16:45   #6
Mitriy08
Пользователь
 
Регистрация: 11.07.2008
Сообщений: 91
По умолчанию

есть в самом SQL функция IsNull
запрос будет выглядеть примерно так

Код:
Select IsNull(Name,'') from table
вслучае, если результат запроса является Null буит ''
Mitriy08 вне форума Ответить с цитированием
Старый 13.07.2008, 12:03   #7
Mitriy
Пользователь
 
Регистрация: 08.07.2007
Сообщений: 47
По умолчанию

Цитата:
Цитата:
Я не работал с DBF, но в принципе должно быть одинаково, примерно так:
if sqlPrSkl.FieldByName('Artikul_P').I sNull then S:=''
else S:=sqlPrSkl.FieldByName('Artikul_P' ).AsString;

Неработает....!
Так точно будет работать
Код:
if sqlPrSkl.FieldByName('Artikul_P').Value = Null then S:=''
else S:=sqlPrSkl.FieldByName('Artikul_P').AsString;
Mitriy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
delete where fields=null??? Geddar SQL, базы данных 1 02.06.2008 16:57
Delphi 2007 и NULL nemaster21 Общие вопросы Delphi 14 23.04.2008 16:59
вопрос time(NULL) Ceprey Общие вопросы C/C++ 5 07.03.2008 11:30
если поле Patr пусто или null то пустую строку возвращает azat БД в Delphi 5 01.02.2008 13:05