Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];

Вниз

Как правильно написать предложение 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.04 c
3-1159871123
ККВ
2006-10-03 14:25
2006.12.10
Как получить значение поля?


11-1140415603
LAutour
2006-02-20 09:06
2006.12.10
Нужно передать Items из KOLListBox параметром в процедуру.


9-1139482424
VolanD666
2006-02-09 13:53
2006.12.10
Collision Detection II.


2-1164284169
windows
2006-11-23 15:16
2006.12.10
что значит эта запись platform;?


2-1163674438
*Ray*
2006-11-16 13:53
2006.12.10
обнуление значения DBLookUpComboBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский