Avatar billede jan2001 Nybegynder
05. oktober 2003 - 02:23 Der er 22 kommentarer og
1 løsning

hvor er fejlen?

Jeg for følgende fejl:

Fejltype:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.


<%
Dim billedrec
ID = request.querystring("id")

    strDBPath = Server.MapPath("../db/db.mdb")
    Set objConn = Server.CreateObject("ADODB.Connection")
    Set billedrec = Server.CreateObject("ADODB.Recordset")
    objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & ";"

billedrec = "select * from billeder where id=" & ID & ";"
set rs = objConn.execute(billedrec)
%>

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>

<body>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><%= rs("billed" & ID & ";") %></td>
  </tr>
</table>
</body>
</html>
<%
    objConn.Close
    Set rs = Nothing
%>
Avatar billede thesurfer Nybegynder
05. oktober 2003 - 02:29 #1
det første du gør, er at indsætte <% option explicit %> i toppen af din asp fil, og derefte definere ALLE de variabler.. så undgår du stavefejl, som plejer at være mere end 50% af fejlene.. måske 80% endda..
Avatar billede thesurfer Nybegynder
05. oktober 2003 - 02:29 #2
skriv lige hvad linie det er galt med
Avatar billede thesurfer Nybegynder
05. oktober 2003 - 02:30 #3
erstat: where id=" & ID & ";"
med: where id='" & ID & "'"
Avatar billede thesurfer Nybegynder
05. oktober 2003 - 02:32 #4
jeg tror at det er bedst hvis du lukke forbindelse sådan her:
rs.close
set rs = nothing
objConn.close
set objConn = nothing
Avatar billede thesurfer Nybegynder
05. oktober 2003 - 02:33 #5
jeg er næsten sikker på at det where-delen der er noget galt med.. prøv mine forslag.
Avatar billede jan2001 Nybegynder
05. oktober 2003 - 02:42 #6
Nu får jeg fejlen:

Microsoft JET Database Engine (0x80040E07)
Datatyperne stemmer ikke overens i kriterieudtrykket.
Avatar billede thesurfer Nybegynder
05. oktober 2003 - 02:55 #7
hvad har du lavet om?
Avatar billede thesurfer Nybegynder
05. oktober 2003 - 02:55 #8
request.querystring("id")  er et tal?
Avatar billede squashguy Nybegynder
05. oktober 2003 - 03:09 #9
jeg tror problemer ligger i denne linie
<%= rs("billed" & ID & ";") %>

hvis dit felt hedder billed, ser den sådan ud:
<%= rs("billed") %>
Avatar billede jan2001 Nybegynder
05. oktober 2003 - 03:13 #10
Jeg har kun lavet where id=" & ID ";" om til det du skriv.
Avatar billede fet321 Nybegynder
05. oktober 2003 - 09:49 #11
Prøv lige med følgende:

<%

ID = request.querystring("id")

strDBPath = Server.MapPath("../db/db.mdb")
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & ";"

sql_string = "select * from billeder where id=" & ID & ";"
set objRs = objConn.execute(sql_string)

%>
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>

<body>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><%= objRs("billed") & ID) %></td>
  </tr>
</table>
</body>
</html>
<%

objRs.close
set objRs = nothing
objConn.close
set objConn = nothing

%>
Avatar billede jan2001 Nybegynder
05. oktober 2003 - 11:28 #12
Jeg forsøgte mig lidt frem inspireret af svaret fra fet321.
syntakset skal se sådan her ud <%= rs("billed" & ID) %>

Hvis fet321 vil have pointene, så råb højt.
Avatar billede fet321 Nybegynder
05. oktober 2003 - 17:42 #13
SVAR

Udover syntaksfejlen i <%= rs("billed" & ID) %>, definerede du også din SQL streng som et ADO recordset - og det er noget rod.

/fet321
Avatar billede fet321 Nybegynder
05. oktober 2003 - 17:44 #14
Tror nu heller ikke du får <%= rs("billed" & ID) %> til at virke.

Efter min bedste overbevisning, skal det være: <%= rs("billed") & ID %>

Smid eventuelt hele koden, som den ser ud nu, så skal jeg tage et kig på det.
Avatar billede jan2001 Nybegynder
05. oktober 2003 - 19:57 #15
Vær'sgo, her er hele koden og den virker altså hos mig uden højreparentes i rs kaldet.

<% option explicit %><%
Dim strDBPath
Dim billedrec
Dim ID
Dim rs
Dim objConn
Dim img

ID = request.querystring("id")
IMG = request.querystring("img")

    strDBPath = Server.MapPath("../db/db.mdb")
    Set objConn = Server.CreateObject("ADODB.Connection")
    Set billedrec = Server.CreateObject("ADODB.Recordset")
    objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & ";"

billedrec = "select * from billeder where id=" & ID & ";"
set rs = objConn.execute(billedrec)
%>

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>

<body>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><%= rs("billed" & ID) %></td>
  </tr>
</table>
</body>
</html>
<%
    objConn.Close
    Set rs = Nothing
%>
Avatar billede fet321 Nybegynder
06. oktober 2003 - 09:24 #16
Du skal fjerne linien
Set billedrec = Server.CreateObject("ADODB.Recordset")

Hvis du skriver
<%= rs("billed") & ID %>
bliver der så ikke udskrevet noget?
Avatar billede jan2001 Nybegynder
06. oktober 2003 - 11:42 #17
Hvis jeg skriver <%= rs("billed") & ID %> så får jeg følgende fejl:

ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.

hvorfor skal jeg fjerne set billedrec......
Det har jeg altid lært man skal ved alle recordset?
Avatar billede fet321 Nybegynder
06. oktober 2003 - 12:49 #18
Hvad hedder feltet i databasen?

"billed" eller "billedID"
Avatar billede fet321 Nybegynder
06. oktober 2003 - 12:51 #19
"billedrec" er ikke dit recordset men din SQL forespørgsel.

"rs" er dit recordset.
Men da du bruger objConn.execute, skal du ikke først definere recordsettet. (Det sørger objConn.execute for)
Avatar billede fet321 Nybegynder
08. oktober 2003 - 19:08 #20
Virker det som det skal?
Avatar billede jan2001 Nybegynder
08. oktober 2003 - 21:44 #21
Ja, det virker stadig.
Lige for god ordens skyld. Du siger, at man ikke skal definerer recordsettet, når man bruger objconn.execute, men hvornår skal man så definerer det.
Avatar billede fet321 Nybegynder
08. oktober 2003 - 22:11 #22
Det har jeg ikke sagt.
Det jeg skrev i parantesen var, at execute'en sørger for at give(definere) dig et recordset.
Avatar billede jan2001 Nybegynder
11. oktober 2003 - 13:24 #23
Jeg finder ud af det. Tak for hjælpen.
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