Avatar billede enlize Nybegynder
15. februar 2001 - 17:33 Der er 11 kommentarer og
1 løsning

Udtræk fra stored procedure

Hej jeg forsøger at lave et ud træk fra en stored procedure som ser således ud:
CREATE Procedure print_tblNyhed
    @NyhedsID Int
AS

IF (@NyhedsID <> \"\")
    Select * from tblNyhed
else
    Select * from tblNyhed Where NyhedsID = @NyhedsID
GO

Udtrækket i .ASP filen ser således ud:

Set returnprint_tblNyhed = Server.CreateObject(\"ADODB.Command\")
            returnprint_tblNyhed.ActiveConnection = Connection
            returnprint_tblNyhed.CommandText = \"print_tblNyhed\"
            returnprint_tblNyhed.Commandtype = adCmdStoredProc
            returnprint_tblNyhed.execute
        Set returnprint_tblNyhed = returnprint_tblNyhed.execute

Men hvis jeg eksekverer .ASP filen får jeg følgende fejlmeddelse:

[Microsoft][ODBC SQL Server Driver][SQL Server]Procedure \'print_tblNyhed\' expects parameter \'@NyhedsID\', which was not supplied.

Jeg er sådan kørt rimelig fast i det, så hvis der er nogen der kan hjælpe, vil jeg være meget taknemmelig.
Avatar billede enlize Nybegynder
15. februar 2001 - 17:34 #1
Ups lille fejl - stored procedure skal selvfølgelig se således ud. :)

CREATE Procedure print_tblNyhed
    @NyhedsID Int
AS

IF (@NyhedsID <> \"\")
Select * from tblNyhed Where NyhedsID = @NyhedsID
   
else
    Select * from tblNyhed
GO
Avatar billede brain Nybegynder
15. februar 2001 - 17:44 #2
hvad sker der hvis du bruger....

Set returnprint_tblNyhed = Server.CreateObject(\"ADODB.Command\")
            returnprint_tblNyhed.ActiveConnection = Connection
            returnprint_tblNyhed.CommandText = \"print_tblNyhed(\" & nyhedsID & \")\"
            returnprint_tblNyhed.Commandtype = adCmdStoredProc
            returnprint_tblNyhed.execute
        Set returnprint_tblNyhed = returnprint_tblNyhed.execute

..hvor nyhedsID indeholder id\'et på nyheden, eller ingenting..
Avatar billede enlize Nybegynder
15. februar 2001 - 17:48 #3
Der opstår samme fejl - desværre.
Avatar billede brain Nybegynder
15. februar 2001 - 18:00 #4
OK, her er det så.... indsæt dette lige under

returnprint_tblNyhed.Commandtype = adCmdStoredProc


Set prmNyhedsID = New ADODB.Parameter
prmNyhedsID.Type = adInteger
prmNyhedsID.Size = 3
prmNyhedsID.Direction = adParamInput
prmNyhedsID.Value = nyhedsID
returnprint_tblNyhed.Parameters.Append prmNyhedsID
 
Avatar billede brain Nybegynder
15. februar 2001 - 18:01 #5
Det skulle være ASP, sorry...

stadig under denn linje...
returnprint_tblNyhed.Commandtype = adCmdStoredProc


indsættes:

Set prmNyhedsID = Server.CreateObject(\"ADODB.Parameter\")
prmNyhedsID.Type = adInteger
prmNyhedsID.Size = 3
prmNyhedsID.Direction = adParamInput
prmNyhedsID.Value = nyhedsID
returnprint_tblNyhed.Parameters.Append prmNyhedsID
Avatar billede enlize Nybegynder
15. februar 2001 - 18:03 #6
Så får jeg følgende fejl:

Class not defined: \'ADODB\' på linie 26 som er: Set prmNyhedsID = New ADODB.Parameter
Avatar billede enlize Nybegynder
15. februar 2001 - 18:05 #7
Desværre - stadig samme fejl som før:

[Microsoft][ODBC SQL Server Driver][SQL Server]Procedure \'print_tblNyhed\' expects parameter \'@NyhedsID\', which was not supplied.
Avatar billede brain Nybegynder
15. februar 2001 - 18:07 #8
har nyhedsID en værdi?
Avatar billede enlize Nybegynder
15. februar 2001 - 18:08 #9
Ja det har den.
Avatar billede brain Nybegynder
15. februar 2001 - 18:08 #10
prøv

prmNyhedsID.Value = CInt(nyhedsID)

istedet for

prmNyhedsID.Value = nyhedsID
Avatar billede enlize Nybegynder
15. februar 2001 - 18:09 #11
Fandme så - mange tak
Avatar billede brain Nybegynder
15. februar 2001 - 18:10 #12
no prob....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester