Форум: "Базы";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];
ВнизIBX - добавление записи, вызов генератора Найти похожие ветки
← →
Девушка © (2005-07-31 11:39) [0]Вопрос глупый, но все же...
Имеется TIbDataset. Поле ID - первичный ключ.
Хочу добавлять записи через DBGridEH
Получается, что нужно и GeneratorField прописывать генератор для ключевого поля и в InsertSQL писатьinsert into zanyatie
(ID,....)
values
(gen_id(Generator,1),....)
Получается, что генератор вызывается дважд, и это слегка смущает...
Если оставить только в insertSQL или только GeneratorField то происходит ошибка добавления записи.
Как корректно реализовать добавления новой записи?
← →
_dimka © (2005-07-31 11:59) [1]Какая ошибка? оставь только GeneratorField и должно нормально работать!
← →
Девушка © (2005-07-31 12:07) [2]
> Какая ошибка? оставь только GeneratorField и должно нормально
> работать!
А в insertSQL что писать?
← →
msguns © (2005-07-31 13:47) [3]В списке полей не указывать ID
← →
}{ander © (2005-07-31 14:00) [4]2 msguns
// В списке полей не указывать ID
Если ключевое поле заполняется на клиенте, то ID нужно указывать обязательно.
2 Девушка
Заполняешь GeneratorField, а в insertSQL пишешь:insert into zanyatie
(ID,field1,...,fieldn)
values
(:new_id,:new_field1,...,:new_field)
← →
msguns © (2005-07-31 14:14) [5]>}{ander © (31.07.05 14:00) [4]
>Если ключевое поле заполняется на клиенте, то ID нужно указывать обязательно.
Смысл ?
А если он есть, то надо в триггере таблицы Before Insert прописать строку с IF NEW.ID IS NULL THEN вызов генератора
В противном случае ID будут притнимать значения "через раз"
← →
}{ander © (2005-07-31 14:22) [6]> msguns © (31.07.05 14:14) [5]
> Смысл ?
Чтобы сразу после вставки записи ее можно было бы сразу же прочитать. Иначе ID вновьвставленной записи никик не получишь (сервер-то его вставляет, но вот клиент о его значении ничего не знает). А так новое значение ID берется из GeneratorField и перед постом вставляется в new_id.
> надо в триггере таблицы Before Insert прописать строку с IF NEW.ID IS NULL THEN вызов генератора
Конечно. Кто же спорит?..
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c