Форум: "Начинающим";
Текущий архив: 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