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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.038 c
15-1182439946
Ricks
2007-06-21 19:32
2007.07.22
BMW использует самый мощный комрьютер в мире


15-1182259369
Rponsh
2007-06-19 17:22
2007.07.22
Танчики(на Turbo pascal)


15-1182762432
xozain
2007-06-25 13:07
2007.07.22
gprs модем


4-1171368306
DVM
2007-02-13 15:05
2007.07.22
CloseHandle вызывает исключения?


4-1170672620
vlad2
2007-02-05 13:50
2007.07.22
Размещение в памяти больших массивов





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский