Главная страница
    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.037 c
14-1101212056
VictorT
2004-11-23 15:14
2004.12.12
Нужно по быстрому написать програмку на Турбо Си (досовском)


14-1100974842
Igorek
2004-11-20 21:20
2004.12.12
Оффтоп :-)


14-1100840649
Danilka
2004-11-19 08:04
2004.12.12
Вот, знакомый прислал


1-1101739912
Rem
2004-11-29 17:51
2004.12.12
Создание глобальной переменной Application


3-1100425443
Алексей Петухов
2004-11-14 12:44
2004.12.12
DBase и русский язык





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский