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

Вниз

Update Null полей   Найти похожие ветки 

 
Надежда   (2007-04-14 21:00) [0]

Уважаемые прграммисты!
Update полей с Null  не проходит в FB.
В SQL Manager 2005 for FB делаю\:
update OBJ
set ID =221, OBJ ="XX5", I9 =0,
I10 =1, S9 ="uuuuu",
S10 ="gggg", D1 ="",
D2 ="", D3 ="",
D4 ="", D5 ="13.04.2007 13:19:36",
POINT_DATE ="14.04.2007 13:46:39",
D_ONLINE ="",
G1 =0, G5 =0
where ID =221
Ругается на замене полей D1,D2,D3,D4. Значения для этих полей выбираются из др. табл., имеют тип Datetime и знач. null.
Как Null - данные записать  в FB?
Заранее спасибо за внимание.


 
Desdechado ©   (2007-04-14 21:15) [1]

так и записать - NULL


 
MsGuns ©   (2007-04-14 22:32) [2]

Если статически, то [1]. Пример:
UPDATE TABLE G1=NULL, G2=NULL...

Если динамически, то через параметры


 
Надежда   (2007-04-14 22:56) [3]


> MsGuns ©   (14.04.07 22:32) [2]
> Если статически, то [1]. Пример:UPDATE TABLE G1=NULL, G2=NULL.
> ..Если динамически, то через параметры


Делаю динамически и не получается, т.к. поля для update беру из selecta с MySQL, а там вместо null стоит "" у varchar-ов и ,, - у integerov.
Сделала так:
SQLQuery2.SQL.Clear;
SQLQuery2.SQL.Add("update RRR");
SQLQuery2.SQL.Add("set ID_nn ="""+MySQLQuery1.Fields[1].AsString+"""");
if not MySQLQuery1.Fields[2].isnull then
SQLQuery2.SQL.Add(", I9 ="+MySQLQuery1.Fields[2].AsString+"");
if not MySQLQuery1.Fields[3].isnull then
SQLQuery2.SQL.Add(", I10 ="+MySQLQuery1.Fields[3].AsString+"");
if not MySQLQuery1.Fields[4].isnull then
SQLQuery2.SQL.Add(", S9 ="""+MySQLQuery1.Fields[4].AsString+"""");
if not MySQLQuery1.Fields[5].isnull then
SQLQuery2.SQL.Add(", S10 ="""+MySQLQuery1.Fields[5].AsString+"""");
if not MySQLQuery1.Fields[6].isnull then
SQLQuery2.SQL.Add(", D1 ="""+MySQLQuery1.Fields[6].AsString+"""");
.....
Не знаю правильно ли?


 
Desdechado ©   (2007-04-14 23:03) [4]

> Не знаю правильно ли?
Т.е. если поле пустое, обновлять не надо? Или надо на NULL? Тогда нужно Params[i].Clear сделать.


 
Надежда   (2007-04-15 01:20) [5]


> Desdechado ©   (14.04.07 23:03) [4]
</I
>
Тогда все равно нужно проверку ведь сделать, чтобы  Params[i].Clear сделать?
if not MySQLQuery1.Fields[3].isnull then
SQLQuery2.Params[i].Clear
Так?


 
Johnmen ©   (2007-04-15 15:43) [6]

Типа того
SQLQuery2.Params[i].Value:=MySQLQuery1.Fields[3].Value


 
Надежда   (2007-04-19 00:31) [7]

Johnmen, спасибо, наконец-то получилось


 
Ega23 ©   (2007-04-19 10:27) [8]

"" и NULL - разные вещи...  :)


 
stakan ©   (2007-04-19 18:50) [9]


> "" и NULL - разные вещи...  :)

Эт смотря для какой СУБД.


 
Johnmen ©   (2007-04-19 19:18) [10]

Это разные вещи. А то что кое-кто их не различает, так это проблема (а м.б. счастье? ) того самого кое-кого...:)


 
stakan ©   (2007-04-20 09:44) [11]


> Это разные вещи. А то что кое-кто их не различает, так это
> проблема (а м.б. счастье? ) того самого кое-кого...:)

Соглашусь с Вами:
(Oracle currently treats a character value with a length of zero as null. However, this may not continue to be true in future releases, and Oracle recommends that you do not treat empty strings the same as nulls.)


 
Desdechado ©   (2007-04-20 11:01) [12]

> Oracle recommends that you do not treat empty strings the same as nulls
Вот только выполнить этот совет не получится, т.к. сравнение с пустой строкой в WHERE не приводит к выборке пустых строк, нужно на IS NULL проверять.


 
stakan ©   (2007-04-20 11:24) [13]


> Вот только выполнить этот совет не получится ... нужно на IS NULL проверять.

Так вроде Oracle как раз это и рекомендует.


 
Desdechado ©   (2007-04-20 11:26) [14]

do not treat



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

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

Наверх




Память: 0.49 MB
Время: 0.029 c
2-1182415834
Abcdef123
2007-06-21 12:50
2007.07.22
Почему датасоурс Nil (не определяется)? (выдает ошибку)Что не так


2-1182708102
mysql
2007-06-24 22:01
2007.07.22
названия полей кириллицей (mysql)


15-1182541836
ArtemESC
2007-06-22 23:50
2007.07.22
Спамеры уже добрались до телефонов...


15-1182025715
rumpelshtilchen
2007-06-17 00:28
2007.07.22
Язык


15-1182330618
sergeyst
2007-06-20 13:10
2007.07.22
Найти макс из чисел, встречающееся в матрице более 1-го раза