Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Вниз

Уникальный 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.087 c
4-1099148447
Zq
2004-10-30 19:00
2004.12.12
Как узнать и поменять уровень общей громкости звука


1-1101848922
Kolan
2004-12-01 00:08
2004.12.12
Перенос Series


8-1094913239
Zeqfreed
2004-09-11 18:33
2004.12.12
TMemoryStream и JPG


4-1098692188
Роман
2004-10-25 12:16
2004.12.12
Удаленное управление


4-1098782955
Aleksandr.
2004-10-26 13:29
2004.12.12
Почему DispatchMessage выдает AV?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский