Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Базы данных, связывание таблиц

Автор: klem4 5.10.2006 21:17

Есть 2 таблицы Paradox, в 1-й (main.db) одно единственное поле

M_Name : A : 30 : *

По нему-же постоен индекс : indM_Name

Вторая таблица (child.db) состоит из 2-х полей :

C_Name : A : 30 : *
C_Info : A : 30 :

По полю C_Name посроен индекс indC_Name

При работе почему-то я могу для одной записи главной таблицы добавить лишь одну запись в подчиненную, если попытаться добавить еще одну запись в подчиненную таблицу возникает ошибка Key Violation, с чем это связано ? Связь между таблицами я налаживал программно, в обработчике формы OnCreate.

  tblChild.MasterSource := dsMain;
tblChild.MasterFields := 'M_Name';
tblChild.IndexName := 'indC_Name';
tblChild.IndexFieldNames := 'C_Name';


Проект и файлы таблиц прилагаетися ...


Прикрепленные файлы
Прикрепленный файл  _____1.rar ( 319.78 килобайт ) Кол-во скачиваний: 180
Прикрепленный файл  WorkDir.rar ( 1.86 килобайт ) Кол-во скачиваний: 199

Автор: klem4 6.10.2006 0:12

В общем вопрос решен. Почитав книгу я узнал следующее :

Для таблиц Paradox в качестве полей связи главной таблицы должны использоваться поля ключа (у меня поле было ключевым + для него был определен вторичный индекс что судя по всему не верно), а для подчиненной таблицы - поля индекса (опять же это поле я сделал еще и ключевым, что не верно)