Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2012.03.04;
Скачать: [xml.tar.bz2];

Вниз

проверить пуст ли датасет   Найти похожие ветки 

 
1234567890   (2011-11-24 15:21) [0]

как правильнее всего проверять есть ли в датасете записи, а то вариантов дофига:

1)
if DataSet.RecordCount = 0 then
 //

2)
if DataSet.IsEmpty then
 //

3)
if DataSet.Eof then
 //

4) if DataSet.FindFirst then
 //


 
И. Павел ©   (2011-11-24 15:26) [1]

1. RecordCount может быть равен —1.
2. Я делаю 2 вариант, т.к. читабельнее.
3. В этом варианте нужно проверять еще и bof. Запутаннее чем 2 но можно применять и его
4. А через FindFirst как планируете определить, что датасет содержит пустую выборку?


 
1234567890   (2011-11-24 15:28) [2]


>  А через FindFirst как планируете определить, что датасет
> содержит пустую выборку?


если в таблице есть хотя бы одна запись, то findfirst вернет true, если записей в датасете нет - false.


 
Anatoly Podgoretsky ©   (2011-11-24 15:35) [3]

> 1234567890  (24.11.2011 15:21:00)  [0]

2.


 
Ega23 ©   (2011-11-24 15:44) [4]

1. RecordCount - штука не совсем надёжная, есть нюансы.
2. Правильный православный метод.
3.
DataSet.Open;
DataSet.Last;
if DataSet.Eof then
  ShowMessage("Eof")
else
  ShowMessage("not Eof");

4. Вообще ни разу не пользовал. По-моему, это вообще из другой оперы.


 
OW ©   (2011-11-24 15:44) [5]

Видимо, пустой DS становится после

procedure TDataSet.ClearBuffers;
begin
 FRecordCount := 0;
 FActiveRecord := 0;
 FCurrentRecord := -1;
 FBOF := True;
 FEOF := True;
end;

соответственно:
1)
RecordCount = 0

2)
function TDataSet.IsEmpty: Boolean;
begin
 Result := FActiveRecord >= FRecordCount;
end;

3)
FBOF =  FEOF = True;

вроде, все правильные

4) - вроде, правильно тоже, но дольше, не очевидно.

Сам тоже люблю IsEmpty
> т.к. читабельнее.



> 1. RecordCount может быть равен —1.

но не 0 :)


 
Dennis I. Komarov ©   (2011-11-24 20:22) [6]


> как правильнее всего проверять есть ли в датасете записи

А зачем?


 
И. Павел ©   (2011-11-24 20:29) [7]


> А зачем?

Ну например чтобы задисейблить кнопки "Удалить запись" и "Редактировать запись" (открывающую отдельное окно, если запись есть).


 
Dennis I. Komarov ©   (2011-11-24 21:19) [8]


> И. Павел ©   (24.11.11 20:29) [7]

Принято, но вопрос не тебе был...



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2012.03.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.003 c
15-1321389003
Юрий
2011-11-16 00:30
2012.03.04
С днем рождения ! 16 ноября 2011 среда


6-1252514641
ramin
2009-09-09 20:44
2012.03.04
Хочу узнать имена компьютеров в локальной сети


15-1320602490
Vladimir12
2011-11-06 21:01
2012.03.04
Глюки в XE2 Update2


2-1321982178
Виталий
2011-11-22 21:16
2012.03.04
Отправление писем из Delphi 7 через Outlook


2-1322040469
Rambo
2011-11-23 13:27
2012.03.04
Быстрое сохранение текста





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский