Главная страница
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.043 c
15-1163962639
Kerk
2006-11-19 21:57
2006.12.10
Лампочка своими руками


2-1164489332
kami
2006-11-26 00:15
2006.12.10
Потокобезопасность TStringList


2-1164247598
uleess
2006-11-23 05:06
2006.12.10
Необходим дозвоньшик в интернет уневерсальный! Для Win98 и WinXP


3-1160124844
snake767
2006-10-06 12:54
2006.12.10
Удалить одинаковые записи в FireBird


15-1163781661
DarkFlow
2006-11-17 19:41
2006.12.10
Playlist как у Winamp