![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правльно? в чем может быть ошибка?
Dataqbazer © (2006-01-18 22:39:00)Доброго времени суток
Могут ли возникнуть ошибки в программе, если делать так:
tblMain.RecNo:=1
while not tblMain.eof
begin
/////
dmMain.next;
end;
или так правильно:
tblMain.Requery;
while not tblMain.eof
begin
/////
dmMain.next;
end;
Объясните чем отличаются эти два варианта? Могут ли возникнуть ошибки при работе с йым вариантом?
Таблица связана с другой таблицей.
Ega23 (2006-01-19 10:40:00) [1]
> Ну все же чем отличается First от RecNo:=1 ?
>
Тем, что у разных потомков TDataSet оно определяется по-разному.
Johnmen (2006-01-19 09:38:00) [2]>И Вы попробуйте сначала хелп почитать, а не парить мозги. ;)
Самое разумное замечание!
mr.il (2006-01-19 09:32:00) [3]
> Прочему только read-only?
Не знаю почему, и в общем-то не желаю. Я привык доверять хелпу. И Вы попробуйте сначала хелп почитать, а не парить мозги. ;)
Vemer (2006-01-19 09:23:00) [4]If tblMain.IsEmpty Then Exit; ))
sniknik (2006-01-19 08:10:00) [5]findnext и next не одно и тоже, лучше пользоватся next в этом случае, даже если пока условия такие, что по действию они одинаковы.
findnext - функция поиска в рекордсете и перевод курсора на найденую запись /next - перевод курсора на следующую запись.
menart (2006-01-19 07:18:00) [6]Если тебе надо убедится что ты действительно перешел на первую запись, то нужно, если нет то зачем?
Findnext-функция которая возвращает true если курсор перешел на первую запись и false если не перешел.
First-процедура которая только переводит курсор на первую запись.
FindNext-соответственно переходит на следующую запись и возвращает true или false усли следующий записи нет или по какой-то причине он несмог перейти. Сответствено next только процедура.
Извиняюсь в 10 посте я не правильно написал, в этом случае мы не увидем первую запись надо так:
tblMain.First;
repeat
...
until not(tblMain.findnext);
Dataqbazer (2006-01-19 07:06:00) [7]Спасибо.
Вместо First можно использовать FindFirst?
menart (2006-01-19 06:47:00) [8]
tblMain.First;
while tblMain.findnext do
...
Dataqbazer (2006-01-19 06:11:00) [9]Прочему только read-only?
for i:=1 to tblMain.RecordCount do
begin
tblMain.RecNo:=i;
end;
Этот же код выполняется... Значит неправильно? Какие могут ошибки возникнуть при использовании?
mr.il (2006-01-19 06:08:00) [10]property RecNo: Longint;
Description
Run-time and read-only. The RecNo property returns a record number for the current record in the dataset. Record numbers are only available for Paradox and dBASE tables; the concept isn't supported by most SQL servers so a table in a SQL database always returns -1 for RecNo.
Dataqbazer (2006-01-19 05:47:00) [11]Получается что requery выполняет то же самое что и First (справку читал )efresh using the Close and Open methods.?
Или я не правильно понял?
Dataqbazer (2006-01-19 05:45:00) [12]Ну все же чем отличается First от RecNo:=1 ?
Johnmen (2006-01-18 23:47:00) [13]>А что делает Requery?
Requery+F1
>Так как правильно будет?
[1], [2]
>И какие могут возникнуть исключения в использовании того, что я написал?
Какие угодно.
Dataqbazer (2006-01-18 22:56:00) [14]
> dmMain.next;
Ух, описался просто
Так как правильно будет? И какие могут возникнуть исключения в использовании того, что я написал?
Dataqbazer (2006-01-18 22:55:00) [15]Есть две таблицы, связаны между собой.
TBL_TITLE->TBL_MAIN
Акцессовские таблицы, работаю через ADO.
А что делает Requery?
Мне нужно перебрать все записи в таблице, которые относятся к записи в главной таблице.
аматор (2006-01-18 22:54:00) [16]Привет..
А может краше так :)
tblMain.First;
while not tblMain.eof then begin
/////
dmMain.next; (может tblMain.next)
end;
unknown (2006-01-18 22:51:00) [17]Что есть tblMain ?
ЗЫ:
А делать надо так:
tblMain.First;
while not tblMain.eof do
...