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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2010, 18:15   #1
Ks2010
Пользователь
 
Регистрация: 08.07.2010
Сообщений: 62
По умолчанию запрос с is null

у меня 2 вопроса. думаю они не сложные...

1: пишу запрос в ADOQuery
Код:
select * from Mtable where stom_weig is null or weigth is null
а он мне никакие данные не возвращает. хотя я знаю что там есть пустые поля.

2:на запрос
Код:
select * from Mtable where stom_weig*5>weigth
выдает ошибку что типы переменных не совпадают. это потому что некоторые значения stom_weig пустые.
вот я и не знаю что сделать. к нулю их приравнивать нельзя... надо наверное как-то пропускать....
Ks2010 вне форума Ответить с цитированием
Старый 21.07.2010, 19:02   #2
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

попробуй для числовых 0 а для текстовых - пустую строку
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 21.07.2010, 21:09   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Korben5E +1

и ещё. Там же у Вас, как мне известно DBF ?
если запрос идёт идёт через MS OLE DB provider for FoxPro
можно ещё попробовать универсальную функцию, которая подходит для любого типа полей EMPTY(поле)
например:
Код:
select * from Mtable 
 where not empty(stom_weig)
  and not empty(weigth)
  and (stom_weig)*5>weigth
но всё же очень хотелось бы увидеть, какого типа поля weigth и stom_weig
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.07.2010, 15:09   #4
Ks2010
Пользователь
 
Регистрация: 08.07.2010
Сообщений: 62
По умолчанию

спасибо,Serge_Bliznykov , с ...not empty(stom_weig)... все получилось!!!!!

надо решить теперь первый ворос... что-то у меня не получается =((
Ks2010 вне форума Ответить с цитированием
Старый 22.07.2010, 15:35   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
надо решить теперь первый ворос
хм... так я думал, что это ответ на два вопроса!!

Цитата:
а он мне никакие данные не возвращает. хотя я знаю что там есть пустые поля.
а так ??
Код:
select * from Mtable 
  where empty(stom_weig)
      or empty(weigth)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.07.2010, 15:58   #6
Ks2010
Пользователь
 
Регистрация: 08.07.2010
Сообщений: 62
По умолчанию

так выглядит мой запрос
Код:
 select * from УБЛБ0811  where  
 obj_code = 85400802 and ( empty(stom_weig) or empty(weigth) or empty(region) or empty(vessel) or empty(cruise_n) or empty(latitude) or empty(longitude) or empty(gear_code)
or empty(obj_code) or empty(num) or empty(sex) or empty(matur_st) or empty(m_lngth) or empty(stom_ball) or empty(n_hawl))
и он возвращает строки не только с пустыми значениями, но и где stom_ball = 0.
Ks2010 вне форума Ответить с цитированием
Старый 22.07.2010, 16:01   #7
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

Цитата:
Сообщение от Ks2010 Посмотреть сообщение
так выглядит мой запрос
Код:
 select * from УБЛБ0811  where  
 obj_code = 85400802 and ( empty(stom_weig) or empty(weigth) or empty(region) or empty(vessel) or empty(cruise_n) or empty(latitude) or empty(longitude) or empty(gear_code)
or empty(obj_code) or empty(num) or empty(sex) or empty(matur_st) or empty(m_lngth) or empty(stom_ball) or empty(n_hawl))
и он возвращает строки не только с пустыми значениями, но и где stom_ball = 0.
ну вероятно в той строке есть другие поля null по условию...
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 22.07.2010, 16:07   #8
Ks2010
Пользователь
 
Регистрация: 08.07.2010
Сообщений: 62
По умолчанию

нет, нету.
вот я не пойму почему. а главное что с этим сделать...
Ks2010 вне форума Ответить с цитированием
Старый 22.07.2010, 16:20   #9
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

а 0 и null это не одно и тоже в программе?
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 22.07.2010, 16:24   #10
Ks2010
Пользователь
 
Регистрация: 08.07.2010
Сообщений: 62
По умолчанию

нет, важно различать пустое поле и нулевое значение
stom_ball = 0 - пустой желудок
a stom_ball = null - нет сведений.
Ks2010 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TParameters. Значение NULL Stilet БД в Delphi 4 13.05.2010 16:45
null + число Dobriak-ru Microsoft Office Access 4 25.03.2010 08:27
Странное поведение null Vitalyk JavaScript, Ajax 6 13.02.2010 15:22
пробел и NULL Николай Сергеевич Общие вопросы C/C++ 14 22.12.2009 08:48
delete where fields=null??? Geddar SQL, базы данных 1 02.06.2008 16:57