"Leif Neland" <
le...@neland.dk> skrev i en meddelelse
news:4f0d91b8$0$282$1472...@news.sunsite.dk...
> Classic asp, sqlserver 2008R2, Stig Johansens parameterized
> query-funktion.
>
> Jeg har et problem med at kalde en
> Jeg har en user-defined sql-funktion, der returnerer en tabel:
> check_gavekort(@id int,@pin) returns table
>
> Men jeg ville gerne bruge parametized queries.
> set rs=st_query(conn,"select * from
> dbo.gavekort_check(?,?)",array(request.form("Kortnummer"),request.form("Pin")),2)
> Det fejler imidlertid i denne linie:
> cmd(Counter).type = 12 ' adVariant
> med fejlen "0x80004005 Syntax error or access violation"
Der bliver åbenbart ikke lavet nogle parametre ud af ?'erne, når queryet er
en funktion, i modsætning til når det bare er en almindelig sql-sætning.
Så ved at lave løkken, der sætter parametrene om, lykkedes det:
For Counter = 0 To Paramcount - 1
' IKKE
'cmd(Counter).value = Parameters(Counter)
'cmd(Counter).type = Paramtypes(Counter)
' MEN
cmd.parameters.Append
cmd.CreateParameter("",Paramtypes(Counter),adParamInput,,Parameters(Counter))
Next