![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
работа с таблицей бд из класса
_qwerty_ © (2011-11-28 23:08:00)есть таблица, которая содержит разнородные записи и есть класс, который включает методы навигации по записям в этой таблице. как правильнее всего организовать доступ к таблице.
1. через конструктор передавать TDBISAMDatabase и создавать экземляр объекта TDBISAMTable и работать с ним.
TNavigator = class
private
FTableOfItems: TDBISAMTable;
public
constructor Create(Database: TDBISAMDatabase); // <- FTableOfItems := TDBISAMTable.Create; ... FRableOfItems.Open
destructor Destroy; override;
procedure GoToFirst(Where: Integer);
procedure GoToLast(Where: Integer);
procedure GoToNext(Where: Integer);
procedure GoToPrevious(Where: Integer);
end;
2. через конструктор передавать уже созданный экземляр объекта TDBISAMTable и работать с ним.
TNavigator = class
private
FTableOfItems: TDBISAMTable;
public
constructor Create(TableOfItems: TDBISAMTable); // <- FTableOfItems := TableOfItems
destructor Destroy; override;
procedure GoToFirst(Where: Integer);
procedure GoToLast(Where: Integer);
procedure GoToNext(Where: Integer);
procedure GoToPrevious(Where: Integer);
end;
3. по-другому.
DiamondShark (2011-11-29 02:30:00) [1]
> 3. по-другому.
Выкинуть этот класс в корзину.
Никому нафиг не нужен класс системы ниппель: вход есть, а выхода нет. Даже побочного эффекта от изменения сакрального внутреннего состояния нет.
Ты из постановки задачи выкинул самое интересное -- ответ на основной вопрос системотехники.
А в представленном виде ответ может быть только один: "без разницы"(Ц).
Loginov Dmitry (2011-11-28 23:41:00) [2]
> как правильнее всего организовать доступ к таблице
С точки зрения пользователя твоей программы - без разницы, главное, чтобы работало.
С точки зрения программиста - так же без разницы, главное, чтобы было максимально понятно, логично, с минимальным объемом кода.
Если строить аналогию с DB-компонентами типа TDataSet, то более логичным выглядит первый вариант. Но тебе должно быть виднее.