![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
доступ к данным подчиненной таблицы
kopernik21187 © (2008-08-18 14:50:00)вопрос такой:
есть две связанные таблицы ADOTable1 и ADOTable2,а также ADODataSet1...
ADOTable1-главная,ADOTable2-подчиненная....
доступ к определенному полю ADOTable1 осуществляется так
AdoDataSet1.RecNo:=n;
edit1.text:=AdoDataSet1.FieldByName('наименование' ).value;
а как скажите пожалуйста как точно так же получить доступ
к определенному полю в подчиненной таблице?
Заранее спасибо всем ответившим
Anatoly Podgoretsky (2008-08-21 16:54:00) [1]> kopernik21187 (21.08.2008 16:11:06) [6]
Это да, но по коду в ней может быть только одна запись.
MsGuns (2008-08-21 16:29:00) [2]Справка в помощь. По АДО в самих компонентах, по SQL - в дельфишной Local SQL
Вполне исчерпывающе.
kopernik21187 (2008-08-21 16:11:00) [3]
> Вся эта дребедень в 3 реализуется простым запросом (TADOdataSet)
> с одной связкой и никакие нагромождения мастер-деталов не
> нужны
ты не мог бы код привести?честно гря с ADODataSet еще не работал....
> Ох и поимеешь ты гемороя с RecNo
верно!мне срочно просто нада было.....
> И вопрос, а зачем тогда тут нужен ADOTable1?
как зачем?это ж главная таблица.....
Anatoly Podgoretsky (2008-08-21 15:22:00) [4]Ох и поимеешь ты гемороя с RecNo
И вопрос, а зачем тогда тут нужен ADOTable1?
MsGuns (2008-08-21 14:09:00) [5]Вся эта дребедень в 3 реализуется простым запросом (TADOdataSet) с одной связкой и никакие нагромождения мастер-деталов не нужны
kopernik21187 (2008-08-21 12:07:00) [6]
> Очтается выяснить зачем тебе AdoDataSet1 и как он связан
> с твоими ADOTable-ми?
ты прав ADODataSet1 не понадобился....двумя ADOTable и без locate....
суть задачи заключалась в Memo вывести запись поля ADOTable1 и соответствующие ей подчиненные записи из ADOTable2
сделал так
procedure TForm1.Button2Click(Sender: TObject);
var i,j: integer;
begin
for i:=1 to DataModule2.ADOTable1.RecordCount do
begin
DataModule2.ADOTable1.RecNo:=i;
Memo1.Lines.Add('Организация: '+DataModule2.ADOTable1.fieldbyname('Наименование').value);
for j:=1 to DataModule2.ADOTable2.RecordCount do
begin
DataModule2.ADOTable2.RecNo:=j;
Memo1.Lines.Add('ИНН: '+DataModule2.ADOTable2.fieldbyname('ИНН').Value);
end;
end;
end;
oldman (2008-08-18 16:38:00) [7]
> а как скажите пожалуйста как точно так же получить доступ
> к определенному полю в подчиненной таблице?
Для начала: не к полю, а к записи.
Ведь в подчиненной таблице их может быть несколько.
А если одна, locate тебе в руки...
Sergey13 (2008-08-18 16:22:00) [8]> [0] kopernik21187 © (18.08.08 14:50)
> доступ к определенному полю ADOTable1 осуществляется так
> AdoDataSet1.RecNo:=n;
Это не есть хорошо (мягко сказать). У таблицы должно быть ключевое поле по значению которого и нужно искать/позиционироваться на запись методом locate. Если таблицы связаны М-Д связью, то после позиционирования в главной таблице можешь так-же читать значение из подчиненной.
edit2.text:=ADOTable2.FieldByName('наименование' ).value;
Очтается выяснить зачем тебе AdoDataSet1 и как он связан с твоими ADOTable-ми?