Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.03.04;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.008 c
15-1321250855
Dimka Maslov
2011-11-14 10:07
2012.03.04
Релятивистский диск


2-1318082533
БезымянныйСтудент
2011-10-08 18:02
2012.03.04
Где в таком случае делать try?


2-1322215244
Aleks
2011-11-25 14:00
2012.03.04
Как определить событие OnClik в динамически созданном объекте Bu


15-1321034703
Процик
2011-11-11 22:05
2012.03.04
Какие нужны книги?


15-1321291140
Омлет
2011-11-14 21:19
2012.03.04
«Начинающим» отпала