Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.03.11;
Скачать: CL | DM;

Вниз

работа с таблицей бд из класса   Найти похожие ветки 

 
_qwerty_   (2011-11-28 23:08) [0]

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

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. по-другому.


 
Loginov Dmitry ©   (2011-11-28 23:41) [1]


> как правильнее всего организовать доступ к таблице


С точки зрения пользователя твоей программы - без разницы, главное, чтобы работало.

С точки зрения программиста - так же без разницы, главное, чтобы было максимально понятно, логично, с минимальным объемом кода.

Если строить аналогию с DB-компонентами типа TDataSet, то более логичным выглядит первый вариант. Но тебе должно быть виднее.


 
DiamondShark ©   (2011-11-29 02:30) [2]


> 3. по-другому.

Выкинуть этот класс в корзину.
Никому нафиг не нужен класс системы ниппель: вход есть, а выхода нет. Даже побочного эффекта от изменения сакрального внутреннего состояния нет.

Ты из постановки задачи выкинул самое интересное -- ответ на основной вопрос системотехники.
А в представленном виде ответ может быть только один: "без разницы"(Ц).



Страницы: 1 вся ветка

Текущий архив: 2012.03.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.008 c
2-1322435280
Vyacheslav
2011-11-28 03:08
2012.03.11
try except end;


3-1272650997
YanKl
2010-04-30 22:09
2012.03.11
bde,paradox. Связь одной таблицы с двумя родительскими


15-1321628043
Dimka Maslov
2011-11-18 18:54
2012.03.11
Баг или фича


15-1321384309
Faceless
2011-11-15 23:11
2012.03.11
Работа Delphi программистом в США


2-1322563453
Vyacheslav
2011-11-29 14:44
2012.03.11
Теория: Как эта функция отдаёт константы?