Форум: "Базы";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];
ВнизЗначения по умолчнию Найти похожие ветки
← →
Cranium (2003-07-08 20:15) [0]Не подставляются значения по умолчанию в поля где они опредлены вот к примеру таблица....
CREATE TABLE GROUP_AND_USER (
ID_OBJECT INTEGER NOT NULL,
ID_PARENT INTEGER,
COUNT_CHILDREN INTEGER DEFAULT 0
);
Что характерно из моего приложения не подставляются, а из IBexpert"а пожалуйста.... Использую IDX IBDataSet.... В приложении при вставке COUNT_CHILDREN ни чего не присваивается...
← →
Zacho (2003-07-09 08:05) [1]Дело в том, что default значение подставляется только тогда, когда запрос имеет вид
INSERT INTO TABLE GROUP_AND_USER (ID_OBJECT,ID_PARENT) VALUES (:ID_OBJECT, :ID_PARENT)
В твоем же случае происходит выполнение запросаINSERT INTO TABLE GROUP_AND_USER (ID_OBJECT,ID_PARENT, COUNT_CHILDREN) VALUES (:ID_OBJECT, :ID_PARENT, :COUNT_CHILDREN)
, где :COUNT_CHILDREN=NULL. Поэтому после выполнения этого запроса в поле COUNT_CHILDREN оказывается NULL.
Решить эту проблему можно несколькими способами:
1. Написать триггер BEFORE INSERT следующего вида:
CREATE TRIGGER GROUP_AND_USER_BI0 FOR GROUP_AND_USER
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.COUNT_CHILDREN IS NULL) THEN NEW.COUNT_CHILDREN=0;
END
2. В обработчике события OnNewRecord датасета присваивать 0 этому полю.
Ну и еще можно варианты придумать, эти просто первые, пришедшие мне в голову.
← →
Zacho (2003-07-09 08:15) [2]
> Zacho © (09.07.03 08:05)
Естественно, слово TABLE в запросах лишнее :) Название таблицы я просто скопировал, и не обратил внимание, что туда вкралось TABLE :-))
← →
KDS (2003-07-10 16:44) [3]>COUNT_CHILDREN INTEGER DEFAULT 0
ЧТОБЫ ПОДСТАВЛЯЛОСЬ НАДО ДОПИСАТЬ not null в конце строки
всего лишь, а не городить триггеры и прочее
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.008 c