Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TIBDataSet... [D5, IB6.x]


First_May ©   (2002-12-19 09:50:00) 

Здравствуйте! Записал в TIBDataSet в свойство InsertSQL следующий текст:
INSERT INTO MOL(COD, CODP, DEF, DEFS)
VALUES(:NEW_COD, :NEW_CODP, :NEW_DEF, :NEW_DEFS)
Поле COD является автоинкрементным. Но при добавлении новой записи выскакивает ошибка, то есть COD не получает значение. Как этого избежать???


First_May   (2002-12-19 10:54:00) [1]

Спасибо всем!


Johnmen   (2002-12-19 10:30:00) [2]

Если надо использовать в связ.табл., то наиболее предпочтительней заранее получать ID.
см. Prooksius © (19.12.02 10:11)
или с помощью ХП (я предпочитаю так)


First_May   (2002-12-19 10:16:00) [3]

А как Alexandr © (19.12.02 10:09) решает этот вопрос? :)


Prooksius   (2002-12-19 10:11:00) [4]

В таком случае самое лучшее - Query.SQL := select gen_id(mygenerator, 1) RecNo from rdb$datadase
При вставке выполнять эту Query и читать значение поля RecNo.
Тогда ты будешь этот номер знать и в клиенте.
Я так и делаю. ИМХО самый лучший способ.


Alexandr   (2002-12-19 10:09:00) [5]

все сталкивались.
Но непонятно, чего конкретно ты хочешь избежать...


First_May   (2002-12-19 10:07:00) [6]

Я об этом думал, но мне надо использовать этот код в связанных таблицах... Ну а вообще кто нибудь сталкивался с этим вопросом еще?


Prooksius   (2002-12-19 09:56:00) [7]

Можно написать триггер на вставку и заполнять поле там, а на клиенте его не изменять.


Наверх

Титульная страница Поиск, карта сайта Написать письмо