Hej gruppe. Jeg er ved at tilrette en gammel applikation der bruger
ADO.CreateParameter. I den forbindelse volder det problemer at
overføre null-værdier til den bagvedliggende sql-procedure.
Hvis jeg angiver null som parameterværdi til den funktion der
kalder CreateParameter, melder asp-siden tilbage at der ikke er
angivet værdier for alle parametre.
Jeg kan se at andre har prøvet noget tilsvarende - her er fx en
tråd fra google:
<
http://groups.google.dk/group/microsoft.public.vb.database.ado/browse_frm/thread/a8dac3a84adccfc/0fb3a39d7a8cb12e>
- kortlink: <
http://kortlink.dk/26g6>.
- men jeg kan ikke finde nogen gode løsninger på problemet.
Pt har jeg klaret mig ved at ændre proceduren bagved så den laver
strengen "NULL" om til værdien NULL (med NULLIF(@parameter,
'NULL')), men jeg vil stadig gerne høre om det kan lade sig gøre at
sende en "rigtig" null-værdi via en ADO.parameter.
Så vidt jeg kan se er det kun et problem med tekstfelter - da jeg
tidligere prøvede på et numerisk felt, kom null igennem uden
problemer.
Mit kald til CreateParameter går gennem en hjælpefunktion,
AddParameter - der primært definerer diverse vb-konstanter.
Det ser således ud:
Dim ean
ean = Trim(Request.Form("eannummer"))
if ean = "" Then
ean = "NULL" ' <-- Her ville jeg gerne bare skrive NULL
ElseIf len(trim(ean)) <> 13 or not isnumeric(ean) Then
response.redirect "fejlside.asp?fejl=ean"
End If
AddParameter oCmd, "@EANnummer", adVarChar, adParamInput, ean
Sub AddParameter(cmd, pname, ptype, pdirection, pvalue)
on error resume next
dim plen
dim i
select case ptype
[... en lang række tilfælde]
case adVarChar
if len(pvalue) = 0 then
plen = 1
else
plen = len(pvalue)
end if
end select
cmd.Parameters.Append(cmd.CreateParameter(pname, ptype,
pdirection, plen, pvalue))
End Sub
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html