C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 13 - Пробег записей TDataSet / BDE / Borland C++

Шаг 13 - Пробег записей TDataSet

Компонент TDbf является стандартным потомком TDataSet, а это значит, что большинство методов и свойств, которые ниже будут рассмотрены, одинаково переносимы также и на любой другой объект доступа к таблице.

Для обозначения номера текущей записи в таблице используется свойство только по чтению ActiveRecord. Вообще, строго говоря, позиционирование при помощи прямого изменения свойств изначально в TDataSet не предусмотрено. Вместо этого используется набор функций: First, Last, Next, Previous. Я думаю, общий смысл этих функций понятен. В качестве примера приведу заполнение обычного TListView из таблицы:

//**** начальная инициализация
Dbf1->Active = true;
Dbf1->First();
grid->Items->BeginUpdate();
//**** количество записей в таблице
ProgressBar1->Max = Dbf1->RecordCount;
while(!Dbf1->Eof)
{
	TListItem* i = grid->Items->Add();
	i->caption = Dbf1->Fields->Fields[1]->AsString;
	i->SubItems->Add(Dbf1->Fields->Fields[2]->AsString);
	vec[i]->size = Dbf1->Fields->Fields[5]->AsInteger;
	i++;
	ProgressBar1->Position++;
	Dbf1->Next();
}
Dbf1->First();
Dbf1->Active = false;
grid->Items->EndUpdate();

Необходимо отметить, что при выполнении такого рода пробега необходимо отключить все связанные с этим источником данных таблицы, поскольку изменение номера текущей записи автоматически меняет позиционирование курсора TDBGrid. Это очень сильно замедляет работу алгоритма.

Обратите внимание, что во многих случаях использование TDBGrid предпочтительнее, скажем, той же TStringGrid, в связи с тем, что таблица не загружается сразу и полностью, а только та часть, которая в данный момент видна на экране. Это дает ощутимую экономию процессорного времени и памяти. С другой стороны, явным недостатком TDBGrid является отсутствие операций сортировки по полю. К этой теме в следующих шагах я еще собираюсь вернуться.


| |
Автор Аванесов Самвел.
[AD]