Avatar billede kivig Nybegynder
06. oktober 2006 - 13:41 Der er 10 kommentarer og
1 løsning

Fejl: ADODB.Recordset (0x800A0BB9)

Hej Eksperter

Jeg har læst i flere tråde om denne fejl ("Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another."), men kan ikke finde fejlen på min egen side. Koden er forneden og fejlen opstår i denne sætning:
----------------------------------------
rst.Open strQuery, conn, adOpenDynamic, adLockOptimistic
----------------------------------------

<%
Option Explicit
Response.Expires = 0
Dim Conn, rst, rst2
Dim strKriterie, strWhere, strQuery
Dim Kundenr, Sessionnr, Ordrenr
Dim Fejl, iX , EuroP, USDP, SumEuro, SumUSD
Set rst = Server.CreateObject("ADODB.Recordset")
Set rst2 = Server.CreateObject("ADODB.Recordset")
%>
<!--#include file="../inc/adovbs.asp" -->
<!-- Forbindelse til database -->
<!--#include file="../inc/Connect.asp" -->
<%
if Len(Trim(Request.querystring("Ordrenr"))) > 0 then
Ordrenr = Trim(Request.querystring("Ordrenr"))
Sessionnr = session.SessionID
end if

rst.Open strQuery, conn, adOpenDynamic, adLockOptimistic
response.cookies("FFButik") = "FFButik"
response.cookies("FFButik")("ORDRENR") = Ordrenr
response.cookies("FFButik")("KUNDEFORNAVN") = rst("ForNavn")
response.cookies("FFButik")("KUNDEEFTERNAVN") = rst("EfterNavn")
response.cookies("FFButik").expires = DateAdd("m",3,Now())
response.cookies("FFButik").secure = false
%>

Håber i kan hjælpe.

Bedste hilsner

Kivig
Avatar billede nielle Nybegynder
06. oktober 2006 - 18:32 #1
Hvad er der i din strQuery?
Avatar billede nielle Nybegynder
16. oktober 2006 - 14:15 #2
Hvad med noget respons?
Avatar billede kivig Nybegynder
16. oktober 2006 - 15:57 #3
Hej Nielle
Undskyld ventetiden og tak for din tålmodighed.

Problemet er at jeg har bygget ovenpå et shop-system som jeg har udviddet med ydeligere kolonner i db. Jeg har prøvet at følge StrQuery fra start til fejl men kan umiddelbart ikke se hvor den går galt.

jeg skriver mere i morgen da jeg ikke sidder ved arbejdscomputeren nu men håber du stadig kan hjælpe. Endnu engang tak for tålmodigheden. :)

Kivig
Avatar billede kivig Nybegynder
17. oktober 2006 - 15:15 #4
Hej Igen Nielle.

Det oprindelige problem er løst, jeg får ihvertfald ikke den fejl mere. Men hvis du kan hjælpe med en procent udregning ville jeg være meget glad.
Jeg har skrevet følgende:

EuroDiscount = rst2("EuroP") * rst2("Discount") / 100
USDDiscount = rst2("USDP") * rst2("Discount") / 100

EuroTotal = rst2("EuroP") - EuroDiscount
USDTotal = rst2("USDP") - USDDiscount%>

<td width="16%"><%=EuroTotal%></td>
<td width="16%"><%=USDTotal%></td>

Problemet er at jeg får fejl i første linie: ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.

Kan du hjælpe ?
Avatar billede nielle Nybegynder
17. oktober 2006 - 16:19 #5
Den første linje, er denne her?

EuroDiscount = rst2("EuroP") * rst2("Discount") / 100

Umiddelbart lyder fejlbeskeden som om at der ikke findes et felt som enten hedder EuroP eller Discount i den tabel som du har udtrukket data fra ... eller at du ikke har SELECT'et mindste et af felterne.
Avatar billede kivig Nybegynder
17. oktober 2006 - 17:13 #6
Hej.

Ja det er denne linie:
EuroDiscount = rst2("EuroP") * rst2("Discount") / 100

Både EuroP og Discount findes i db men det kan ske jeg ikke har selected det :/. Skriver igen i morgen når jeg kan tjekke det.

Jeg har iøvrigt også sat EuroDiscount i en Dim i headeren så det burde heller ikke være der fejlen opstår.

Men er linien syntax mæssigt i orden?
Avatar billede nielle Nybegynder
17. oktober 2006 - 17:40 #7
Ja, men det kan være at du ogsæ skal typecaste med CDbl(). Men, det er nu ikke derfor at du får fejlbeskeden.
Avatar billede kivig Nybegynder
18. oktober 2006 - 15:45 #8
Hej igen.

Her er min SQL sætning:
---------------------------------------------------------------------------------
strQuery = "SELECT * FROM tblNyKunde, tblOrdre WHERE Ordrenr ='" & Ordrenr & "'"
---------------------------------------------------------------------------------

tblNyKunde og tblOrdre er to individuelle tabeller men med en fælles kolonne "Ordrenr", Så et Ordrenr kan hente både kunde- og ordre-oplysninger.

Det er i TblOrdre hvor EuroDiscount, USDDiscount, EuroP, USDP og Discount findes.

Men er min SQL i orden?
Avatar billede nielle Nybegynder
19. oktober 2006 - 18:00 #9
Det kan jeg ikke uddtale mig 100% om.

1) Er din felt Ordernr et tal-felt eller et tekst-felt. Ved tal-felter skal der ikke '-tegn omkring.

2) Du har ikke vist mig din SQL-sætning. Du har derimod vist mig den ASP-kode som har ansvaret for at lave den, og det er noget lidt andet. Prøv at udskrive den fejlende SQL-sætning *før* at du forsøger at udføre den:

strQuery = "SELECT * FROM tblNyKunde, tblOrdre WHERE Ordrenr ='" & Ordrenr & "'"
Response.Write "DEBUG: " & strQuery & "<br>"

3a) Er du sikker på at din variabel Ordrenr altid har en værdi?

3b) Og er du også sikker på at - selvom den har en værdi - at der faktisk findes en post i databasen som svare til denne?
Avatar billede kivig Nybegynder
02. november 2006 - 12:24 #10
Hej igen.
Jeg har ændret strukturen i db og er kommet videre siden sidst. Mange tak for din hjælp og undskyld al den vente tid. Giv et svar og pointsne er dine. :)

Bedste hilsener
Kivig
Avatar billede nielle Nybegynder
02. november 2006 - 21:02 #11
Ok, et svar :^)
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