IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Базы данных, связывание таблиц
сообщение
Сообщение #1


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Есть 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 килобайт ) Кол-во скачиваний: 177
Прикрепленный файл  WorkDir.rar ( 1.86 килобайт ) Кол-во скачиваний: 195


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


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

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


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 22:18
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name