Главная страница
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.015 c
8-1162202011
olegnik
2006-10-30 12:53
2007.07.22
Работа с растровым изображением.


2-1182770879
gentos
2007-06-25 15:27
2007.07.22
Полосы прокрутки в компоненте Image, QRImage


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


15-1182194237
Keni
2007-06-18 23:17
2007.07.22
Обнаружить сниффер? Как?


11-1165910389
КВАНТ
2006-12-12 10:59
2007.07.22
KOLRichEdit.URL &amp; VCLRichEdit.URL