Есть база данных в которой две таблицы — lecturer и study. Они содержат информацию о преподавателе и о занятии. Есть классы Lecturer и Study, причем Lecturer содержит коллекцию из Study. Нужно считывать инормацию из БД и писать её в классы. Есть два варианта — сразу создавать контейнер с объектами и заполнять их инфой из базы, либо читать частями (Инфа из объектов будет выводиться в самописную таблицу (что-то вроде расписания занятий) , за один раз по 5 объектов).
Какой из них предпочтительнее ? (Также еще надо писать данные в БД).
Какие советы будут по реализации вариантов (с БД работаю впервые), сейчас смотрю ADOTable, ADODataSet но хелп в Delphi 7 какой-то фиговый(по сравнению с MSDN) (например искал инфу по ADOTable.RecordSet.GetRows() — ничего нету
). В идеале было бы неплохо привести небольшой примерчик
, но в принципе и самому не привыкать разбираться.
P.S. смотрел статьи на DelphiMaster and DelphiKingdom, искал в google но ничего путного не нашел
... << RSDN@Home 1.1.4 beta 5 rev. 410>>
В принципе можно читать с помощью GetFieldByName('_name_').AsSomething и так всю строку а затем переходить к следующей записи, но может есть что-нибудь по элегантнее ?
... << RSDN@Home 1.1.4 beta 5 rev. 410>>
Елки палки.
В случае с TADOTable тебе нужно не в MSDN топать а в Delphi Help.
Вот сымый простой пример пробежки по рекодсету:
ADOTable.First; { перейти на первую запись}
while not ADOTable.EOF { пока есть записи } do begin
ADOTable.FieldByName ('SomeField').AsInteger; {так вытягиваются данные из полей}
Next; {перейти на следующую запись}
end;
Дак я и искал инфу в Дельфийском хелпе, с MSDN просто так сравнил.
А насчет примера — спасибо, я примерно так и представлял.
... << RSDN@Home 1.1.4 beta 5 rev. 410>>
У меня есть две таблицы — lecturer и study. Study является подчиненной для lecturer. Ключевое поле lecID в lecturer связано с studID в study как один-ко-многим.
Перемещаясь по записям в таблице с преподавателями я хочу получить доступ к списку его занятий, как это реализовать через ADO в Delphi?
Почитав хелп я написал такое
_adoTableLect := TADOTable.Create(nil);
_adoTableLect.ConnectionString := 'Provider=Microsoft....';
_adoTableLect.TableName := 'lecturer';
_adoTableLect.MasterFields := 'lecID';
_adoTableLect.Active := True;
_dataSource := TDataSource.Create(nil);
_dataSource.DataSet := _adoTableLect;
_adoTableStud := TADOTable.Create(nil);
_adoTableStud.ConnectionString := 'Provider=Microsoft....';
_adoTableStud.TableName := 'study';
_adoTableStud.MasterSource := _dataSource;
_adoTableStud.IndexName := 'studID';
_adoTableStud.Active := True;
Как я понял при изменении текущей записи в _adoTableLect дожна меняться и _adoTableStud, но ничего подобного.
... << RSDN@Home 1.1.4 beta 5 rev. 410>>