Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как правльно? в чем может быть ошибка?


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
...


Наверх

Титульная страница Поиск, карта сайта Написать письмо