maikl |
Отправлено: 12.12.2003, 11:12 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
Всем привет . Помогите пожалуйста, у меня проблема вроде бы не сложная, но у меня что то все таки не получается. В моем примере есть 2 базы, нужно одно поле одной базы связать с полем другой БД, что бы данные которые находятся в поле БД которую я связываю, я мог использовать в другой БД. Пробывал использовать Refential Integtity (целостность на уровне ссылок), как я понял это свойство позволяет обеспечивать связи между данными отдельных таблиц. Возможно это даже не то что мне необходимо, но в любом случаи при нажатии на кнопку Defaine у меня выскакивает ошибка "A primary index is required when maintained indexes or referentional integrity are used". Кто нибудь помогите, скажите что можно сделать и как связать эти два поля, я использую СУБД Paradox. |
|
Nick |
Отправлено: 12.12.2003, 13:02 |
|
Машинист паровоза
Группа: Участник
Сообщений: 247
|
Наверно ты не сделал ключевое поле в таблицах.
Пример:
Table Tovar
Name Type
============ =======
Tovar_ID N
Name A120
Cena $
Tovar_ID N — должно быть Primary Key
В Paradox вроде бы надо поставить * (Type — N*)
Table Data
Name Type
============ =======
Data_ID N*
Docs_ID N
Tovar_ID N — Тоже нужно сделать Secondary Index
KolVo N
Summa $
После этого можно установить связь между
Как сделать Secondary Index не помню давно в Paradox не работал.
Tovar->Tovar_ID <-> Data->Tovar_ID
отношение один-к-многим записям
|
|
maikl |
Отправлено: 13.12.2003, 06:14 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
Спасибо за совет, все сделал как ты сказал, сделал вторичные индексы по полям которые связываю, хотелось бы узнать как теперь отобразить в DBGride во вспомогательной таблице связанные данные из головной таблицы. Я делал так :
Table1 и DataSource1 — компоненты головной таблицы .
Table2 и DataSource2 — компоненты вспомогательной таблицы .
В свойстве MasterSource компонета Table1 я ставлю DataSource2,
а в свойстве MasterFields я уже непосредственно связываю эти два поля, может я что то делаю не так, после всего этого ничего не происходит. |
|
Nick |
Отправлено: 13.12.2003, 09:37 |
|
Машинист паровоза
Группа: Участник
Сообщений: 247
|
Я не делал такого с таблицами.
Вообще стараюсь работать с Query
Query1 "Select * from documents" — ключевое поле Documents_ID
Query2 "Select * from docsdata dd where dd.documents_ID = :Documents_ID"
DS1 — DataSource Query1
DS2 — DataSource Query2
Если у Query2 поставить DataSource = DS1, то в параметр :Documents_ID запроса Query2 будет подставляться Documents_ID текущей записи Query1 и обновляться набор записей Query2 при Scroll Query1. Сдесь главное что бы имя поля главного запроса совпадало с параметром в подчиненном запросе.
Вообще работаю с IBase компоненты IBX перехожу на FIBPlus
с ADO и BDE работал мало. Там может быть немного по другому.
|
|