/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Null og ADO.CreateParameter
Fra : Jens Gyldenkærne Cla~


Dato : 07-11-05 12:45

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

 
 
Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste