Показать сообщение отдельно
  #1  
Старый 15.11.2007, 15:12
val7n val7n вне форума
Прохожий
 
Регистрация: 15.11.2007
Сообщения: 1
Репутация: 10
По умолчанию Как связать 2 таблицы?

Есть две таблицы: Product и ProductInfo




procedure TdmMy.DataModuleCreate(Sender: TObject);
begin
….

cdsProduct.Open;
cdsProductInfo.Open;

cdsProduct.AddIndex('indxID','ID',[],'','');
cdsProduct.IndexFieldNames:='ID';
cdsProductInfo.AddIndex('indxID','ProductID;Materi alID',[],'','');
cdsProductInfo.IndexFieldNames:='ProductID;Materia lID';
end;

Устанавливаем связь через MasterSource и MasterFields

procedure TfmSpisanie.FormActivate(Sender: TObject);
begin
pnlProduct.Height:=fmSpisanie.ClientHeight div 2;
dsProduct.DataSet:=dmMy.cdsProduct;
dsProductInfo.DataSet:=dmMy.cdsProductInfo;
dmMy.cdsProductInfo.MasterSource:=dsProduct;
dmMy.cdsProductInfo.MasterFields:='ID';

В результате данные в таблицах показываются неверно:
в таблице Product недоступны строки с Product.ID= Productinfo.ProductID

Как правильно установить связь?
Ответить с цитированием