Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

MasterSourse в IBDATASET [D7, IB6.x]


Fedor ©   (2004-11-29 16:47:00) 

Подскажите пожалуйста аналог MasterSourse от IBTable для IBDATASET(т.е. связанные поля)


Hmm   (2004-11-30 22:52:00) [1]

хотя постойте, у меня IBDataset1.datasource=DataSource1 и IBDataset2.datasource=DataSource2... забавно.


Hmm   (2004-11-30 22:48:00) [2]

бывает )


Val (from Donetsk)   (2004-11-30 22:43:00) [3]

:) правильно


Fedor   (2004-11-30 15:52:00) [4]

Дурдом какой-то. Это не работало, потому что в свойстве IBDataSet2-DataSourse нужно было указать DataSourse, который присоединен к IBDataSet1!!! Как вам  это?


Fedor   (2004-11-30 12:44:00) [5]

Таблица 1, мастер- RegTable(первое поле RID). Таблица 2- KassaTable(первое поле KID). Связанны по полю KID=RID. На RID стоит генератор (CREATE GENERATOR GEN_REGTABLE;
SET GENERATOR GEN_REGTABLE TO 27;). Его указываю в Generator field. На форме IBDataSet, IBDataBase, IBTransaction, DataSource, DBGrid, добавил на всякий случай UpdateSQL- ничего. Соответсвующие данные есть.


Hmm   (2004-11-30 09:50:00) [6]

Собственно [2] от [3] не сильно отличаются (запостил, потому что не сразу понял суть [2]), но вот в [3] абсолютно работающий код (по крайней мере при стандартных усовиях, набросав компоненты на форму, связав и подцепив к своей базе, проверил - все ОК).
Рискну предположить, что во второй таблице у тебя просто нет соответсвующих записей?
Либо поробуй конкретнее описать как ты организовывал эту связь, чтобы можно было бы смоделировать твою ситуацию у себя. =)


Fedor   (2004-11-30 04:40:00) [7]

К сожалению не прокатил ни один вариант. Таблицы должны быть связаны по первому полю (я так понимаю оно Fields[0].Integer) в обеих таблицах. И в первом и во втором случаях в DBGride присоединенной таблице пусто.


Hmm   (2004-11-29 21:18:00) [8]

а можно так:


procedure TForm1.IBDataSet1AfterScroll(DataSet: TDataSet);
begin
ibdataset2.close;
ibdataset2.SelectSQL.Clear;
ibdataset2.SelectSQL.Add('select * from Tovar where Tov_Group_Nomer=:Tov_Group_ID');
ibdataset2.Params[0].AsString:=dataset.Fields.Fields[1].AsString;;
ibdataset2.Open;
end;


где IBDataset1 - "главная" таблица, IBDataset2 - "дочерняя" таблица, Fields[1] - то поле в "главной" таблице, по которому осуществляется связь (как я понял - Tov_Group_Nomer).


Vemer   (2004-11-29 20:22:00) [9]

Похоже IbTable тебя задолбал )).
Используй свойство DataSourceи параметрический запрос.

Например
Select * From Tovar
Where Tov_Group_Nomer = :Tov_Group_ID;


Tov_Group_ID- поле в Master таблице.


Fedor   (2004-11-29 20:04:00) [10]

select * from ds2, ds1 where id1=id2 не помогает. В DBgrid'е ds2 висит несколько записей непонятно по какому принцыпу отобранные. Кто знает в чем дело?


Наверх

Титульная страница Поиск, карта сайта Написать письмо