Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

Уникальный PK и "авто-FK"   Найти похожие ветки 

 
HydraMarat   (2004-11-09 00:41) [0]

Здорово, Мастера! Созрел до очередного вопроса...

Ситуация: есть форма, на ней два TDBGrid"а и TDBNavigator"а, подключаемые через TIBTable. Обе таблицы связаны через FK, плюс каждая имеет PK. Ясно видно, что обе управляются через навигаторы... Так вот:

1) Как сгенерировать уникальный PK при добавлении записи и когда его записывать? Говорят, что надо использовать генератор. А как?
2) Надо ли "вручную" добавлять значения в FK второй таблицы или компонент сделает это сам? (все-таки связь "зарегистрирована")
3) Нарушит ли добавление этих самых значений связь, которую устанавливают компоненты?

Да, и БД"шка Firebird, то бишь Interbase

Извините, если чё глупого написал, просто плохо разбираюсь.
Заранее, Спасибо!


 
Наталия ©   (2004-11-09 06:54) [1]

Почитай здесь http://www.ibase.ru/develop.htm


 
HydraMarat   (2004-11-09 10:34) [2]

Прописал триггер на BeforeInsert:

NEW.QUESTID=GEN_ID(QUESTGEN, 1);

и ничего... во время POST компонент ругается, что нет значения для QUESTID


 
jack128 ©   (2004-11-09 17:03) [3]

HydraMarat   (09.11.04 10:34) [2]
это клики компонента. Поставь для поля ID Required := False;

И вообще - забей на TIBTable, переходи на TIBDataSet. SQL подучишь, производительность приложения повысишь..
2) Надо ли "вручную" добавлять значения в FK второй таблицы или компонент сделает это сам? (все-таки связь "зарегистрирована") где зарегестрирована? на сервере? Этот не важно. Если ты имеешь в виду связку двух IbTable - то хз, но вероятность того, что id подчиненной таблички подставляешься автоматом стремиться к нулю.  Собственно, это легко проверить эксперементом.


 
jack128 ©   (2004-11-09 17:11) [4]

jack128 ©   (09.11.04 17:03) [3]
это ГлЮки компонента.


И еще - как ты в приложениии собираешься узнавать сгенерированное значение ID?  
Посмотри - есть ли у Table свойство GeneratorField?? в IBX 5.04 это свойство у IbTable неопубликованно (кстати - очень странно - почему??)  может в твой версии это исправлено.  Если нет, то нужно вручную узновать значение ID..


 
Vemer ©   (2004-11-09 20:21) [5]

Если интересно посмотри FAQ в файлах архиве на DevPortal.Ru. Там несколько способов получения ID описано.


 
Deniz ©   (2004-11-10 08:21) [6]

И вот еще
http://www.sql.ru/forum/actualthread.aspx?tid=136637


 
HydraMarat   (2004-11-11 03:41) [7]

Собственно все решилось использованием SQL запросов с GEN_ID (запросы возвращают значение генераторов), а FK компонент ставит автоматически.



Страницы: 1 вся ветка

Текущий архив: 2004.12.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
1-1101838448
Ермак
2004-11-30 21:14
2004.12.12
Всплывающая подсказка ТОЛЬКО в StatusBar


3-1100015950
Kergma
2004-11-09 18:59
2004.12.12
Добавить, получить значение поля массива......КАК?


3-1100363168
zz 5
2004-11-13 19:26
2004.12.12
View в Interbase


1-1101287166
vlad12
2004-11-24 12:06
2004.12.12
компилирует но невыполняет


1-1101839603
Ищущий ответ
2004-11-30 21:33
2004.12.12
Почему не работает код?