Главная страница
    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.004 c
11-1242734651
regnied
2009-05-19 16:04
2012.03.04
Поиск в глубину


2-1322388950
я
2011-11-27 14:15
2012.03.04
длина bmp в пикселях


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


2-1321906467
lars
2011-11-22 00:14
2012.03.04
String Grid Подскажите, пожалуйста, как получить номера выбранных


2-1322346386
я
2011-11-27 02:26
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский