Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как узнать, что в таблице нет данных??

18K
04 мая 2007 года
fantaser
14 / / 22.01.2007
Всем привет.

Мне нужно, чтобы данных из таблицы зачитывались и вносились в поля ListEditor. Проблема в том, что, если таблица пустая, вылетает ошибка.

Как проверить есть ли в таблице информация или же таблица пустая (только что созданная или очищенная, к примеру)?

Данные извлекаются вот так:
DBDataModule->SectionIdListTable->Open();
DBDataModule->SectionIdListTable->First();
while (DBDataModule->SectionIdListTable->Eof!=true)
{
// остальной код, не влияющий на чистоту эксперимента :)
DBDataModule->SectionIdListTable->Next();
}

Все спасибо. Жду ответов.
263
04 мая 2007 года
koltaviy
816 / / 16.12.2004
И что за ошибка интересно??
Странный код :) :
 
Код:
while (DBDataModule->SectionIdListTable->Eof!=true)
..

Не логичнее написать так:
 
Код:
while (DBDataModule->SectionIdListTable->Eof==false)
..

или вообще вот так:
 
Код:
while ( ! DBDataModule->SectionIdListTable->Eof )
..

Ну это, собственно к делу не относится.
Вообще никакой ошибки вылетать не должно и, ИМХО, не может!!
Если уж так сильно приспичет, то вот так:
 
Код:
if ( DBDataModule->SectionIdListTable->RecordCount != 0 )
..
4.6K
04 мая 2007 года
Tokolist
268 / / 22.03.2007
Цитата: koltaviy
Если уж так сильно приспичет, то вот так:
 
Код:
if ( DBDataModule->SectionIdListTable->RecordCount != 0 )
..



Это плохой стиль программирования. Надо так:

 
Код:
if (DBDataModule->SectionIdListTable->RecordCount > 0)
263
05 мая 2007 года
koltaviy
816 / / 16.12.2004
Цитата: Tokolist
Это плохой стиль программирования. Надо так:

 
Код:
if (DBDataModule->SectionIdListTable->RecordCount > 0)


Аргументируй, пжлста, свои высказывания!! Что именно 'плохо'?! Как приведенный мною код 'плохо' влияет на логику и быстродействие работы программы?!!:confused: :D

4.6K
05 мая 2007 года
Tokolist
268 / / 22.03.2007
Цитата: koltaviy
Аргументируй, пжлста, свои высказывания!!



Аргументирую :)

такая запись != 0 значит, что переменная или больше нуля или меньше нуля, а такая запись > 0 значит, что переменная больше нуля. Какая запись логичней? :) Нам ведь нужно проверять условием, что в таблице содержится 1 или более записей, а не то что в таблице количество записей не равно нулю.

Конечно в данном конкретном случае значенее переменной меньше нуля не может быть в принципе, но не факт что она все-таки (возможно из-за ошибки программистов) примет значение меньше нуля, тогда рушится все твое условие и программа вылетает в ексепшн :)

поэтому это и считается плохим стилем (заметь, что я не говорю что так программировать не допускается вообще ;) ) возможно ты сейчас этого не понимаешь, но со временем поймешь :-)

263
05 мая 2007 года
koltaviy
816 / / 16.12.2004
Цитата: Tokolist
Аргументирую :)

такая запись != 0 значит, что переменная или больше нуля или меньше нуля, а такая запись > 0 значит, что переменная больше нуля. Какая запись логичней? :) Нам ведь нужно проверять условием, что в таблице содержится 1 или более записей, а не то что в таблице количество записей не равно нулю.

Конечно в данном конкретном случае значенее переменной меньше нуля не может быть в принципе, но не факт что она все-таки (возможно из-за ошибки программистов) примет значение меньше нуля, тогда рушится все твое условие и программа вылетает в ексепшн :)

поэтому это и считается плохим стилем (заметь, что я не говорю что так программировать не допускается вообще ;) ) возможно ты сейчас этого не понимаешь, но со временем поймешь :-)


Да, наверно, ты прав!

294
06 мая 2007 года
Plisteron
982 / / 29.08.2003
Цитата: koltaviy
 
Код:
if ( DBDataModule->SectionIdListTable->RecordCount != 0 )
..



Смотря какая СУБД. Я сталкивался со случаями, когда RecordCount == 0 даже в непустых таблицах (курсорах), пока не сделаешь Table1->First();.
Я обычно делаю

 
Код:
if (!(Table1->Bof && Table1->Eof))
{
/* ... */
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог