Работа с БД Access
От: Solovjev Sergey  
Дата: 21.04.05 20:13
Оценка:
Есть база данных в которой две таблицы — 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>>
Re: Работа с БД Access
От: Solovjev Sergey  
Дата: 21.04.05 20:41
Оценка:
В принципе можно читать с помощью GetFieldByName('_name_').AsSomething и так всю строку а затем переходить к следующей записи, но может есть что-нибудь по элегантнее ?
... << RSDN@Home 1.1.4 beta 5 rev. 410>>
Re: Работа с БД Access
От: Danchik Украина  
Дата: 22.04.05 12:23
Оценка: 1 (1)
Елки палки.
В случае с TADOTable тебе нужно не в MSDN топать а в Delphi Help.
Вот сымый простой пример пробежки по рекодсету:

ADOTable.First; { перейти на первую запись}
while not ADOTable.EOF { пока есть записи } do begin
  ADOTable.FieldByName ('SomeField').AsInteger; {так вытягиваются данные из полей}
  Next; {перейти на следующую запись}
end;
Re[2]: Работа с БД Access
От: Solovjev Sergey  
Дата: 22.04.05 18:40
Оценка:
Дак я и искал инфу в Дельфийском хелпе, с MSDN просто так сравнил.
А насчет примера — спасибо, я примерно так и представлял.
... << RSDN@Home 1.1.4 beta 5 rev. 410>>
Re: Работа с БД Access
От: Solovjev Sergey  
Дата: 23.04.05 10:29
Оценка:
У меня есть две таблицы — 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>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.