Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поставить условие на "null" 
:(
    Опции темы
mspuz
Дата 7.10.2005, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 20.6.2005
Где: Ногинск

Репутация: нет
Всего: нет



Проблема
в Interbase я писал:

if IBQuery1.FieldValues['recno']<>null then MyPer:=IBQuery1.FieldValues['recno'] else MyPer:='';

а в BDE такое не прокатывает - пишет, что необъявленная переменная "null". Пробывал использовать "nil", тоже не получилось. Так как надо???

PM MAIL   Вверх
Darhazer
Дата 7.10.2005, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 28.9.2005
Где: HellCity (Sofia, Bulgaria)

Репутация: нет
Всего: 29



А попробувал is not null ?
P.S. это в самом запросе, я поздно увидел что ты сравниваеш уже результати запроса
Попробуй пустую строку ("") пользуват?

Это сообщение отредактировал(а) Darhazer - 7.10.2005, 11:33


--------------------
I'm a wheel, I'm a wheel, I can roll, I can feel
But you can't stop me turning
'Cause I'm the sun, I'm the sun, I can move, I can run
But you'll never stom me burning
PM MAIL WWW ICQ YIM   Вверх
mspuz
Дата 7.10.2005, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 20.6.2005
Где: Ногинск

Репутация: нет
Всего: нет



Пробовал я с пустой строкой - не получается smile
PM MAIL   Вверх
Петрович
Дата 7.10.2005, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 6
Всего: 55



Что-то не то ты пишешь.
1. Null это функция возвращающая "пустое" значение типа Variant. А по сему, никакого отношения к способу доступа к БД (BDE, Interbase, и пр.) это не имеет. Кстати, это функция определена в модуле Variants, и если тебе компилятор пишет "необъявленная переменная "null"." , то вероятно ты забыл указать этот модуль в uses.
2. А для проверки на Null значения поля, у каждого поля есть метод IsNull. Вот его и логичнее использовать в твоем случае. Например так:
Код

if not IBQuery1.FieldByName('recno').IsNull then MyPer:=IBQuery1.FieldValues['recno'] else MyPer:='';

3. Именно твой фрагмент я бы записал так:
Код

MyPer:=IBQuery1.FieldByName('recno').AsString;

Семантически это будет эквивалентно, зато гораздо естественнее смотрится.

Это сообщение отредактировал(а) Петрович - 7.10.2005, 11:58


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
kobra
Дата 7.10.2005, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 1
Всего: 9



1. ето луще делать в запросе ISNULL(field, '') AS field (правда не помню, в интербеис такое есть?).
2. гдето, когдато читал что в физическои базе NULL занимает болше места, чем пустое значение, по етому было рекомендовано ползоватся пустым значением, числом 0, заведомо установленнои нереалнои датои.
PM MAIL   Вверх
mspuz
Дата 7.10.2005, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 20.6.2005
Где: Ногинск

Репутация: нет
Всего: нет



Петрович Огромное спасибо!!! Очень точный и полностью исчерпывающий ответ!!!
P.S. Узнал много нового smile
PM MAIL   Вверх
Петрович
Дата 7.10.2005, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 6
Всего: 55



Цитата(kobra @ 7.10.2005, 13:38)
1. ето луще делать в запросе ISNULL(field, '') AS field (правда не помню, в интербеис такое есть?).

Иногда бывает необходимость проверки на NULL в программе а не в запросе.

Цитата(kobra @ 7.10.2005, 13:38)
2. гдето, когдато читал что в физическои базе NULL занимает болше места, чем пустое значение, по етому было рекомендовано ползоватся пустым значением, числом 0, заведомо установленнои нереалнои датои.

Даже если и так. Все равно, те проблемы которые ты получаешь при отказе от использования NULL, не идут ни в какое сравнение с незначительным увеличением размера БД.


Это сообщение отредактировал(а) Петрович - 7.10.2005, 13:05


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
bas
Дата 7.10.2005, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 446
Регистрация: 14.8.2002
Где: Молдова, Кишинев

Репутация: 1
Всего: 2



В Oracle , например - Null не есть 0 или ''.
PM MAIL   Вверх
Петрович
Дата 7.10.2005, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 6
Всего: 55



Цитата(bas @ 7.10.2005, 15:14)
В Oracle , например - Null не есть 0 или ''.

Хм. А что, где-то Null соответствует 0 или '' ?
Лично я такого не встречал. Null он и в африке Null.


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0461 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.