/ Forside/ Teknologi / Udvikling / ASP / Spørgsmål
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
Kan ikke få værdie ud af det der retuner~
Fra : pnr
Vist : 1061 gange
100 point
Dato : 29-10-03 20:29

Jeg har følgende stored procedure:

CREATE PROC indsaetNyKunde
(
@navn varchar(50),
@adresse varchar(50),
@postnr int,
@tlf nvarchar(20),
@brugernavn nvarchar(30),
@dato varchar(30),
@forhandlernr nvarchar(40),
@adgangskode nvarchar(15),
@kundenr varchar(10) = null output
)
AS
begin

select @kundenr = MAX(kundenr) FROM Bruger
select @kundenr = @kundenr + 1

INSERT INTO bruger
(kundenr, brugernavn, adgangskode, navn, adresse, postnr, tlf, dato, forhandlernr)
VALUES
(@kundenr, @brugernavn,@adgangskode,@navn,@adresse,@postnr,@tlf,@dato,@forhandlernr)

end
GO

laver så følgende i ASP:

sqlFor = "EXECUTE indsaetNyKunde '" & navn & "','" & adresse & "','" & postnr & "','" & tlf & "','" & brugernavn & "','" & now() & "','" & session("forhandlernr") & "','" & adgangskode & "';"

set rs = Server.CreateObject("ADODB.Recordset")
rs = cn.execute(sqlFor)
response.write "kundenr: " & rs("kundenr") <-- Dette er linie 85

Og får følgende fejl:
ADODB.Fields error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/opretBruger.asp, line 85

 
 
Kommentar
Fra : gandalf


Dato : 30-10-03 10:52

Hej pnr

Ændre din stored procedure som følger:

Gandalf
*************************************

CREATE PROC indsaetNyKunde
(
@navn varchar(50),
@adresse varchar(50),
@postnr int,
@tlf nvarchar(20),
@brugernavn nvarchar(30),
@dato varchar(30),
@forhandlernr nvarchar(40),
@adgangskode nvarchar(15),
@kundenr varchar(10) = null output
)
AS
begin

SET NOCOUNT ON

select @kundenr = MAX(kundenr) FROM Bruger
select @kundenr = @kundenr + 1

INSERT INTO bruger
(kundenr, brugernavn, adgangskode, navn, adresse, postnr, tlf, dato, forhandlernr)
VALUES
(@kundenr, @brugernavn,@adgangskode,@navn,@adresse,@postnr,@tlf,@dato,@forhandlernr)

SET NOCOUNT OFF

select @kundenr kundenr

end
GO

Kommentar
Fra : pnr


Dato : 30-10-03 14:51

Det var sq lækkert!! Jeg takker mange gange, hvordan får vi afregnet det her?

Kommentar
Fra : pnr


Dato : 30-10-03 15:11

Hov forresten jeg har hørt noget om at man bør bruge noget command iforbindelse med MS SQL, hvis man vil have det til at performe bedre. Hvordan kan jeg bygge det ind i det jeg har?

Kommentar
Fra : gandalf


Dato : 30-10-03 15:32

Hej PNR

Man kan sige i dit tilfælde her kan det godt betale sig at køre med ado.command, fordi du kun returnere en værdi. Det er lidt overkill at bruge et helt recordset for kundenr.

For at gøre dette skal du skrive

Return @kundenr (i stedet for select @kundenr)

Her er et eksempel på hvordan du bruger command objektet.

---------------------------------------------------------------
function isUserOK(ip,username,passwd)
   
      dim adoCommand
   
      set adoCommand = server.CreateObject("ADODB.Command")
   
      with adoCommand
         .ActiveConnection = ConnectionString
         .CommandType = adCmdStoredProc
         .CommandText = "sp_checkuser"
   
         .Parameters.Append .CreateParameter("IsUserOK",adInteger, adParamReturnValue)
         .Parameters.Append .CreateParameter("@ip",adVarchar,adParamInput,20,ip)
         .Parameters.Append .CreateParameter("@username",adVarchar,adParamInput,50,username)
         .Parameters.Append .CreateParameter("@passwd",adVarchar,adParamInput,50,passwd)
         .Execute
   
         if .Parameters("IsUserOK")=1 then
            isUserOK = true
         else
            isUserOK = false
         end if
      end with

      set adoCommand = nothing

   end function

Accepteret svar
Fra : gandalf

Modtaget 100 point
Dato : 30-10-03 15:34

For at afregne mine point skal du trykke på "Accepter kommentar som svar" ovenover mit indlæg.

Gandalf

Godkendelse af svar
Fra : pnr


Dato : 30-10-03 15:39

MANGE Tak for svaret gandalf.
                        

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste