![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обращение к данным в TDbf [D7, dBase, FoxPro]
Micker2 © (2006-05-24 18:42:00)Может кто подскажет.
Раньше с базами данных в Delphi не работал, но потребовалось зумутить одну штуку.
Короче, я использую компоненты TDbf, TDataSource, TDBGrid, надо получить данные
из всех полей каждой записи таблицы для дальнейших манипуляций. У TDbf есть свойство
Fields с помощью которого можно обратиться к любому полю текущей записи, пользуясь этим
я попробовал вернуться к первой записи (Dbf1.First) и выцыплять данные с помощью с-ва Fields,
переходя к следующей записи (Dbf1.Next). Способ корявый. Да ещё и курсор передвигается в
TDBGrid при выполнении переходов между записями в TDbf. Вобщем нужен совет как мне получить
все данные из таблицы.
Micker2 (2006-05-24 19:11:00) [1]Народ, спасибо за помошь.
Desdechado (2006-05-24 19:04:00) [2]к конкретной записи - по ключу
сколько записей - RecordCount
перебор - от First до not EOF
остальное - для несталкивавшихся с БД - в букварях по Дельфи есть
Vlad (2006-05-24 19:04:00) [3]
> Micker2 (24.05.06 18:58) [2]
> А как определить кол-во записей, чтобы знать скока .Next
> вызывать
А тебе не надо знать кол-во записей. (по моему это св-во RecordCount)
Dbf1.First;
while not Dbf1.Eof() do
begin
...//тут считываешь данные
Dbf1.Next;
end;
> Аднака ни очинь хароший способ :) Мутный такой... Или с
> БД всегда так? :)
> <Цитата>
Да, это стандартный способ работы. Не понимаю, в чем мутность.
Можно вместо Fields использовать FieldByName(), но я так понял, тебе оно не очень надо...
Micker2 (2006-05-24 19:00:00) [4]Или как, например, обратиться к какой-либо конкретной записи?
Micker2 (2006-05-24 18:58:00) [5]
> Vlad
А как определить кол-во записей, чтобы знать скока .Next вызывать.
Аднака ни очинь хароший способ :) Мутный такой... Или с БД всегда так? :)
Vlad (2006-05-24 18:52:00) [6]
> Micker2 (24.05.06 18:42)
> Способ корявый.
Чем корявый-то? А по-другому никак...
Чтобы курсор не прыгал, попробуй Dbf.DisableControls, а в конце соотв. EnableControls. Или отцепи DataSource на время скроллинга.