Главная страница
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.058 c
15-1163565271
MBo
2006-11-15 07:34
2006.12.10
Новости от Borland


3-1158810664
Lex_!
2006-09-21 07:51
2006.12.10
Формирование меню из таблици базы данных


2-1163761176
WhiteBarin
2006-11-17 13:59
2006.12.10
Выключение или перезагрузка компа через ExitWindowsEx?


9-1140081963
Древолаз
2006-02-16 12:26
2006.12.10
GL Scene Холм и Танк


15-1164106468
zdm
2006-11-21 13:54
2006.12.10
IDSmtp