Home All Groups Group Topic Archive Search About

SqlDataAdapter.Update() uses Default keyword for null values in Server 2003

Author
30 Jun 2006 1:08 PM
Claudio Biagioli
I've a tricky problem making me mad:

1. Same application: one on a Window Server 2003, another on my Windows
XP development machine.

2. It performs a SQLDA.update() of a Dataset containing rows with some
field set to dbnull.value.

3. Result on my machine (form the SQL Profiler):
exec sp_executesql N'IF EXISTS(SELECT * FROM Richieste WHERE GUID=
@key0)
    UPDATE Richieste SET
GUID=@0,DbGUID=@1,EvGUID=@2,IDIncidente=@3,PROAnno=@4,PRONumero=@5,DataIncidente=@6,Targa=@7,TargaAltroVeicolo=@8,CognomeCoinvolto=@9,NomeCoinvolto=@10,DescrizioneIncidente=@11,AllegatiRichiesti=@12,UserID=@13,Data=@14,IPProvenienza=@15,IDStato=@16,IDAderente=@17,DataUltimaModifica=@18,Costo=@19,Commissioni=@20,DataDownload=@21,UserIDDownload=@22,IPDownload=@23,InformazioniAggiuntive=@24,idAssicurazione=@25
WHERE GUID= @key0
ELSE INSERT INTO Richieste
(GUID,DbGUID,EvGUID,IDIncidente,PROAnno,PRONumero,DataIncidente,Targa,TargaAltroVeicolo,CognomeCoinvolto,NomeCoinvolto,DescrizioneIncidente,AllegatiRichiesti,UserID,Data,IPProvenienza,IDStato,IDAderente,DataUltimaModifica,Costo,Commissioni,DataDownload,UserIDDownload,IPDownload,InformazioniAggiuntive,idAssicurazione)
values
(@0,@1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11,@12,@13,@14,@15,@16,@17,@18,@19,@20,@21,@22,@23,@24,@25)',
N'@0 nvarchar(4000),@1 nvarchar(4000),@2 nvarchar(4000),@3
nvarchar(4000),@4 nvarchar(4000),@5 nvarchar(4000),@6 nvarchar(4000),@7
nvarchar(4000),@8 nvarchar(4000),@9 nvarchar(4000),@10
nvarchar(4000),@11 nvarchar(4000),@12 nvarchar(4000),@13
nvarchar(4000),@14 nvarchar(4000),@15 nvarchar(4000),@16
nvarchar(4000),@17 nvarchar(4000),@18 nvarchar(4000),@19
nvarchar(4000),@20 nvarchar(4000),@21 nvarchar(4000),@22
nvarchar(4000),@23 nvarchar(4000),@24 nvarchar(4000),@25
nvarchar(4000),@key0 nvarchar(4000)', @0 = N'1.1.97C8.670F57F6', @1 =
N'3', @2 = N'0', @3 = N'0', @4 = N'0', @5 = N'0', @6 =
N'2006-02-07T00:00:00.0000000+01:00', @7 = N'BM832SX', @8 = NULL, @9 =
N'', @10 = N'', @11 = N'', @12 = N'5', @13 = N'claudio', @14 =
N'2006-05-19T17:29:05.9030000+02:00', @15 = N'127.0.0.2', @16 = N'-1',
@17 = N'9', @18 = N'2006-05-19T17:29:06.0900000+02:00', @19 =
N'16.8000', @20 = N'3.0000', @21 = NULL, @22 = NULL, @23 = NULL, @24 =
NULL, @25 = N'0', @key0 = N'1.1.97C8.670F57F6'

4. Result on Window Server 2003:
exec sp_executesql N'IF EXISTS(SELECT * FROM Richieste WHERE GUID=
@key0)
    UPDATE Richieste SET
GUID=@0,DbGUID=@1,EvGUID=@2,IDIncidente=@3,PROAnno=@4,PRONumero=@5,DataIncidente=@6,Targa=@7,TargaAltroVeicolo=@8,CognomeCoinvolto=@9,NomeCoinvolto=@10,DescrizioneIncidente=@11,AllegatiRichiesti=@12,UserID=@13,Data=@14,IPProvenienza=@15,IDStato=@16,IDAderente=@17,DataUltimaModifica=@18,Costo=@19,Commissioni=@20,DataDownload=@21,UserIDDownload=@22,IPDownload=@23,InformazioniAggiuntive=@24,idAssicurazione=@25
WHERE GUID= @key0
ELSE INSERT INTO Richieste
(GUID,DbGUID,EvGUID,IDIncidente,PROAnno,PRONumero,DataIncidente,Targa,TargaAltroVeicolo,CognomeCoinvolto,NomeCoinvolto,DescrizioneIncidente,AllegatiRichiesti,UserID,Data,IPProvenienza,IDStato,IDAderente,DataUltimaModifica,Costo,Commissioni,DataDownload,UserIDDownload,IPDownload,InformazioniAggiuntive,idAssicurazione)
values
(@0,@1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11,@12,@13,@14,@15,@16,@17,@18,@19,@20,@21,@22,@23,@24,@25)',
N'@0 nvarchar(4000),@1 nvarchar(4000),@2 nvarchar(4000),@3
nvarchar(4000),@4 nvarchar(4000),@5 nvarchar(4000),@6 nvarchar(4000),@7
nvarchar(4000),@8 nvarchar(4000),@9 nvarchar(4000),@10
nvarchar(4000),@11 nvarchar(4000),@12 nvarchar(4000),@13
nvarchar(4000),@14 nvarchar(4000),@15 nvarchar(4000),@16
nvarchar(4000),@17 nvarchar(4000),@18 nvarchar(4000),@19
nvarchar(4000),@20 nvarchar(4000),@21 nvarchar(4000),@22
nvarchar(4000),@23 nvarchar(4000),@24 nvarchar(4000),@25
nvarchar(4000),@key0 nvarchar(4000)', @0 = N'1.1.97C8.670F57F6', @1 =
N'3', @2 = N'0', @3 = N'0', @4 = N'0', @5 = N'0', @6 =
N'2006-02-07T00:00:00.0000000+01:00', @7 = N'BM832SX', @8 = default, @9
= N'', @10 = N'', @11 = N'', @12 = N'5', @13 = N'claudio', @14 =
N'2006-05-19T17:29:05.9030000+02:00', @15 = N'127.0.0.2', @16 = N'-1',
@17 = N'9', @18 = N'2006-05-19T17:29:06.0900000+02:00', @19 =
N'16.8000', @20 = N'3.0000', @21 = default, @22 = default, @23 =
default, @24 = default, @25 = N'0', @key0 = N'1.1.97C8.670F57F6'

As you can see on Windows Server 2003 I have the null values translated
with the default keyword which doesn't work with sp_Executesql (I
receive an error about missing parameter)

The problem must be of the machine, since if I swap Tables/Databases
the problem continue to arise on the Window Server 2003.

The Server SHOULD be updated with the latest version.

Any clue???

AddThis Social Bookmark Button