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

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

SQL in Delphi [D7, XP]


Гена_88 ©   (2008-05-15 17:02:00) 

Помогите разобраться с SQL запросом в дельфи.

Делаю запрос :

SELECT COUNT (ID) cnt, ID FROM TABLE WHERE NAME = :N GROUP BY ID

передаю параметр N = 'asdasdasd'

Если такой записи нет, то он отображает в колонке "CNT" null а не 0.

Подскажите что не так?


Ega23   (2008-05-15 17:47:00) [1]

TDataSet.IsEmpty


Гена_88   (2008-05-15 17:41:00) [2]

Решение найдено, всем спасибо ... if  Query.EOF then CNT := 0   :))))


clickmaker   (2008-05-15 17:35:00) [3]

FieldByname('CNT').IsNull ?


Гена_88   (2008-05-15 17:32:00) [4]

Если записей нет, то должно возвратить "0" но не null т.к из дельфи обращаться не получается ...


Ega23   (2008-05-15 17:28:00) [5]


> Без Group by не работает ... "Invalid token"


Тебе какой результат запроса нужен?


Гена_88   (2008-05-15 17:26:00) [6]


> Попробуй убрать GROUP BY clause


Без Group by не работает ... "Invalid token"


Гена_88   (2008-05-15 17:24:00) [7]

Да, RecordCount не выполняется .... Что делать помогите плиз :( домой уйти не могу  ...


Сергей М.   (2008-05-15 17:24:00) [8]


> Гена_88   (15.05.08 17:21) [5]


Попробуй убрать GROUP BY clause


Сергей М.   (2008-05-15 17:22:00) [9]


> как определить, что значение null при получении поля путем
> FieldByname('CNT').AsInteger ?


Пнрежде чем этим озаботиться ты должен был убедиться в выполнении условия MyQuery.RecordCount > 0. Если это условие не выполняется (а оно и не выполняется), рассуждения в [3] лишены смысла.


Гена_88   (2008-05-15 17:21:00) [10]


> дело в гроуп бай - возвращает пустой набор, если записи
> нет


Помогите переписать запрос, плиз :(


Сергей М.   (2008-05-15 17:19:00) [11]

А еще точнее, этот null, что ты видишь, - есть скорее всего реакция конкретного просмотрщика, получившего результатом твоего запроса пустой наборданных.


Гена_88   (2008-05-15 17:18:00) [12]

А как определить, что значение null при получении поля путем
FieldByname('CNT').AsInteger ??? Возвращает значение 484232 что то типа того ...


clickmaker   (2008-05-15 17:17:00) [13]

дело в гроуп бай - возвращает пустой набор, если записи нет


Сергей М.   (2008-05-15 17:16:00) [14]

Делфи здесь ни причем.

Для Парадокса (да и для большинства других распространенных СУБД) null-результат совершенно нормален.

А чем тебе он помешал ?

На клиентской стороне можно завести вычисляемое поле, в котором null менять на 0.


Наверх

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