Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.10;
Скачать: CL | DM;

Вниз

Как правильно написать предложение Insert в SQL запрос   Найти похожие ветки 

 
Dimon777 ©   (2006-11-23 11:19) [0]

Использую ODAC. В TOraQuery предложение Insert выглядит следующим образом:
INSERT INTO ИмяТаблицы
 (Поле1, Поле2, Поле3)
VALUES
 (:Поле1, :Поле2, :Поле3)


Вопро. Как правильно написать предложение Insert, чтобы если какое-то поле не заполнено пользователем, добавлялось бы значение по умолчанию? Что-то типа
INSERT INTO ИмяТаблицы
 (Поле1, Поле2, Поле3)
VALUES
 (:Поле1, :Поле2=0, :Поле3)


 
Sergey13 ©   (2006-11-23 11:26) [1]

А когда ты присваиваешь значения переменным это нельзя отследить?


 
clickmaker ©   (2006-11-23 11:39) [2]

а что-то типа isnull(:Поле2, 0) не подойдет?


 
Dimon777 ©   (2006-11-23 11:41) [3]

Можно, но это неудобно как-то...
В самой базе стоит

create table  Имя
(
 Поле1  NUMBER(2),
 Поле2   NUMBER(1) default 0,
 Поле3     NUMBER(1)


Но TOraQuery почему-то игнорирует "default 0" вставляя NULL


 
clickmaker ©   (2006-11-23 11:47) [4]


> Но TOraQuery почему-то игнорирует "default 0"

ничего странного. Это работало бы, если бы у тебя в инсерте вообще не фигурировало поле2


 
Sergey13 ©   (2006-11-23 11:47) [5]

> [3] Dimon777 ©   (23.11.06 11:41)

Возможно из-за того, что поле есть в запросе. Если бы было
INSERT INTO ИмяТаблицы
(Поле1, Поле3)
VALUES
(:Поле1, :Поле3)

Это бы сработало. Можно в тригере перед инсертом продублировать
If new.Pole2 is null then new.pole2=0


 
Dimon777 ©   (2006-11-23 11:48) [6]


> isnull(:Поле2, 0)


Спасибо, навёл на мысль!!!!!!!
Работает

INSERT INTO ИмяТаблицы
(Поле1, Поле2, Поле3)
VALUES
(:Поле1, NVL(:Поле2, 0), :Поле3)


 
dimon777 ©   (2006-11-23 11:51) [7]


> Возможно из-за того, что поле есть в запросе. Если бы было
> INSERT INTO ИмяТаблицы
> (Поле1, Поле3)
> VALUES
> (:Поле1, :Поле3)


А вот если исключить поле из запроса, то будет вставлять NULL в любом случае, даже если пользователь вводит какое-то свое значение



Страницы: 1 вся ветка

Текущий архив: 2006.12.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.041 c
15-1164009374
cyborg
2006-11-20 10:56
2006.12.10
Нет доступа к рабочей группе


15-1163701134
Chort
2006-11-16 21:18
2006.12.10
День студента


15-1163777445
Rbn
2006-11-17 18:30
2006.12.10
Delphi 7


15-1164018598
Tex
2006-11-20 13:29
2006.12.10
XPManifest


2-1164443388
Серый
2006-11-25 11:29
2006.12.10
Word