webForumDet fria alternativet

diverse fel

ASP

8 svar · 158 visningar · startad av pettsson

Medlem sedan jan. 20021 122 inlägg
Frågan#1

när jag testar min sida i IIS får jag två olika fel. även om jag inte ändrar nåt i koden kan det bli olika felmeddelanden från gång till gång. problemet är på en sida med databaser. det här är de fel jag får:

odefinerat fel
vad ska det betyda? koden på den raden är:
oppna.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\asp\databas.mdb"

Objekt krävs:
Objekt krävs.: '', vad betyder det? ska jag sätta ' runt koden? koden är:
recset.open dbed, oppna, adopenstatic, adlockoptimistic

Medlem sedan feb. 20012 412 inlägg
#2

Hej och välkommen till wF!

Det första felet kan vara klurigt att säga något om utan mer information.

Objekt krävs:
Objekt krävs.: '', vad betyder det? ska jag sätta ' runt koden? koden är:
recset.open dbed, oppna, adopenstatic, adlockoptimistic

Men detta andra är lite enklare. Har du inkluderas ADOVBS.inc på sidan?

------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.

Medlem sedan jan. 20021 122 inlägg
#3

<!-- #include file="adovbs.inc" -->
ligger längst upp i filen

Medlem sedan feb. 20012 412 inlägg
#4

Posta lite mer kod så blir det enklare att hitta eventuella fel.

mvh Jörgen :)

------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.

Medlem sedan dec. 200012 464 inlägg
#5

Objekt krävs beror nog på att du inte har skapat recset.

Det första problemet kan ha flera orsaker men ett en möjlig felkälla är att sökvägen är felaktig.

------------------
essentitia preter non sans multiplicandum

Medlem sedan jan. 20021 122 inlägg
#6
<!-- #include file="adovbs.inc" -->
<html>
<head>
</head>
<body>
<%
dim oppna, visa, recset, dbed
set oppna=server.createobject("adodb.connection")
oppna.Open "driver={Microsoft Access Driver_ (*.mdb)};dbq=c:\inetpub\wwwroot\asp\ databas\databas.mdb"
dbed="SELECT * FROM databas"

if request.querystring("ordning") ="krit1" or request.querystring("ordning")="krit2" then
set recset=server.createobject("adodb.connection")
end if

if request.querystring("ordning") ="krit1" then
dbed="SELECT * FROM scoutm ORDER BY krit1"
elseif request.querystring("ordning") ="krit2" then
dbed="SELECT * FROM databas ORDER BY krit2"
end if

recset.open dbed, oppna, adopenstatic, adlockoptimistic
do until recset.EOF
%>

Här presenteras databasens innehåll

<%
recset.movenext
loop
recset.close
%>

</body>
</html>

Möjligt att det blir lite skumt med radbrytningar, hoppas att det inte ser helt knäppt ut...

Medlem sedan dec. 200012 464 inlägg
#7

När du skapar recset så anger du att det skall vara ett connectionobjekt och inte ett recordset, så den koden borde bli

if request.querystring("ordning") ="krit1" or request.querystring("ordning")="krit2" then
set recset=server.createobject("adodb.recordset")
end if

istället.

------------------
essentitia preter non sans multiplicandum

Medlem sedan jan. 20021 122 inlägg
#8

nu ser koden ut såhär:

<!-- #include file="adovbs.inc" -->
<html>
<head>
<title>
Visning
</title>
</head>
<body>
<%
set oppna=server.createobject("adodb.connection")
oppna.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:\Inetpub\wwwroot\asp\databas\databas.mdb"

if request.querystring("ordning")="krit1" or request.querystring("ordning")="namn" then
set recset=server.createobject("adodb.recordset")
end if

if request.querystring("ordning")="krit1" then
dbed="SELECT * FROM scoutm ORDER BY krit1"
elseif request.querystring("ordning")="krit2" then
dbed="SELECT * FROM scoutm ORDER BY krit2"
end if

recset.open dbed, oppna, adopenstatic, adlockoptimistic %>
Detta finns i databasen just nu:
<ul>
<% do until recset.EOF %>
<li><% =recset("krit1")%> <% =recset("krit2")%>
<hr noshade size="1">

<%
recset.movenext
loop
recset.close
oppna.close
%>

</body>
</html>

problemet nu är att den tycker att jag måste ha ett recset på rad 25, markerad med blått i koden. varför?

[Redigerat av pettsson den 06 jan 2002]

Medlem sedan dec. 200012 464 inlägg
#9

Med den if-sats du har så är det inte säkert att du skapar något recordset.

Borde du inte skriva så här

if request.querystring("ordning")="krit1" or request.querystring("ordning")="namn" then
set recset=server.createobject("adodb.recordset")

if request.querystring("ordning")="krit1" then
dbed="SELECT * FROM scoutm ORDER BY krit1"
elseif request.querystring("ordning")="namn" then
dbed="SELECT * FROM scoutm ORDER BY namn"
end if

recset.open dbed, oppna, adopenstatic, adlockoptimistic %>
Detta finns i databasen just nu:
<ul>
<% do until recset.EOF %>
<li><% =recset("krit1")%> <% =recset("krit2")%>
<hr noshade size="1">

<%
recset.movenext
loop
recset.close
oppna.close
end if
%>

</body>
</html>

------------------
essentitia preter non sans multiplicandum

296 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
146 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
152 ms — ändringar (db)