webForumDet fria alternativet

Fattar inte vad felet är!!!

ASP

19 svar · 244 visningar · startad av Gimbo

Medlem sedan dec. 20001 626 inlägg
Frågan#1

Jag får detta felmeddelande:

ADODB.Recordset fel '800a0cc1' 
Objektet kunde inte hittas i mängden med det begärda namnet eller numret. 

/ska/forum/default.asp, rad 76

Och kodraderna ser ut så här:

<%

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("..\db.mdb")&";"

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From personligt ORDER BY datum DESC"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
	
Do Until RecSet.EOF

If RecSet("ref_id") = 0 Then
id = RecSet("id")
%>
Medlem sedan dec. 200012 464 inlägg
#2

Antingen så finns inte ref_id eller id i tabellen personligt.

If RecSet("ref_id") = 0 Then
id = RecSet("id")

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

Medlem sedan dec. 20001 626 inlägg
#3

ref_id finns inte men vart i tabellen ska jag lägga den??

spelar det ngn roll i vilken följd? alltså om den ska vara sist i tabellen eller?

Medlem sedan dec. 200012 464 inlägg
#4

Ordningen har ingen betydelse.

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

Medlem sedan dec. 20001 626 inlägg
#5

har lagt till det där och nu får jag detta felmedelande i en annan fil:

Microsoft OLE DB Provider for ODBC Drivers fel '80040e14' 

[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'id='. 

/ska/forum/inlagg.asp, rad 13

kod raden ser ut så här:

<%

ID2 = Request.QueryString("id")

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("..\db.mdb")&";"

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From personligt WHERE id="&ID2
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

%>
Medlem sedan juni 200032 967 inlägg
#6

Då har inte Request.Querystring("id") något värde.

Var kommer det ifrån? Länk? Formulär?

------------------
All your base are belong to me.

Medlem sedan feb. 20012 412 inlägg
#7

Hej!

Kan bero på flera orsaker.

Request.QueryString("id") innehåller inget värde. Eller är id av texttyp.

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

Medlem sedan dec. 200012 464 inlägg
#8

Det verkar som ID2 är en tom sträng
dvs att querystring inte innehåller någon variabel som heter id.

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

Medlem sedan okt. 2001208 inlägg
#9

Skall det inte vara &-tecken på båda sidor av ID2 ?

Medlem sedan juni 200032 967 inlägg
#10

Skall det inte vara &-tecken på båda sidor av ID2 ?

&-tecken används när man skall lägga ihop, konkatenera, strängar. Här behöver vi inte lägga till någon sträng efter ID2, och således behöver vi inte heller något &-tecken.

Mvh,

------------------
All your base are belong to me.

Medlem sedan dec. 20001 626 inlägg
#11

så här ser hela min fil ut:

<!-- #include file="..\adovbs.inc" -->

<%

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("..\db.mdb")&";"

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From personligt"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

	RecSet.AddNew

	RecSet("namn") = Request.Form("namn")
	RecSet("epost") = Request.Form("epost")
	RecSet("rubrik") = Request.Form("rubrik")
	RecSet("inlagg") = Request.Form("inlagg")
	RecSet("datum") = Now
	RecSet("ipnummer") = Request.ServerVariables("REMOTE_ADDR")
	
	If Request.QueryString("ID") = "svar" Then

		RecSet("ref_id") = Request.QueryString("ref_id")

	End If

	RecSet.Update

RecSet.Close

If Request.QueryString("ID") = "svar" Then

	Set RecSet = Server.CreateObject("ADODB.Recordset")

	Addera = "Select * From personligt WHERE id="&Request.QueryString("ref_id")
	RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

	svar = RecSet("antalsvar")
	RecSet("antalsvar") = svar + 1

	RecSet.Update

	RecSet.Close

End If

Connect.Close

Response.Redirect "default.asp"

%>

det är den filen som man lägger till en post i forumet och här e filen som det e knas med:

<!-- #include file="..\adovbs.inc" -->

<%

ID2 = Request.QueryString("id")

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("..\db.mdb")&";"

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From personligt WHERE id="&ID2
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

%>

<html>
<head>
<title>L&auml;ser Svar</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script language="JavaScript">
<!--
function verifiera() 
{

if (document.forum.namn.value == "") 
{ 
alert("Du måste skriva in ett namn!! :-)");
return false ;
} 

if (document.forum.epost.value == "" &#0124;&#0124; 
document.forum.epost.value.indexOf('@', 0) == -1) 
{
alert("Ogiltig E-Post adress!");
return false; 
}

if (document.forum.rubrik.value == "") 
{ 
alert("Du måste skriva en rubrik");
return false;
} 

if (document.forum.inlagg.value == "") 
{ 
alert("Nu glömde du skriva själva inlägget!! ;-)");
return false;
} 

}
// -->
</SCRIPT>

<LINK REL=stylesheet HREF="../style.css" TYPE="text/css">

</head>

<body bgcolor="#FFFFFF" text="#000000">
<div align="left">
  <table width="545" border="0" cellspacing="0" cellpadding="0">
    <tr> 
      <td bgcolor="#FF9900" colspan="3" height="50"> 
        <div align="center"><font size="4" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet("rubrik")%></font></div>
      </td>
    </tr>
    <tr> 
      <td bgcolor="#CCCCCC" colspan="2" valign="top"> 
        <table width="200" border="0" cellspacing="0" cellpadding="0">
          <tr bgcolor="#CCCCCC"> 
            <td width="75"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>Skrivet 
              av:</b></font></td>
            <td width="125"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet("namn")%></font></td>
          </tr>
          <tr bgcolor="#CCCCCC"> 
            <td width="75"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>Epost:</b></font></td>
            <td width="125"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="mailto:<%=RecSet("epost")%>"><%=RecSet("epost")%></a></font></td>
          </tr>
          <tr bgcolor="#CCCCCC"> 
            <td width="75"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>Datum:</b></font></td>
            <td width="125"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet("datum")%></font></td>
          </tr>
          <tr bgcolor="#CCCCCC"> 
            <td width="75"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>Ip 
              nummer:</b></font></td>
            <td width="125"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="http://www.ripe.net/cgi-bin/whois?query=<%=RecSet("ipnummer")%>" target="_blank"><%=RecSet("ipnummer")%></a></font></td>
          </tr>
        </table>
      </td>
      <td bgcolor="#999999" width="345" valign="top"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=Replace(TRIM(Server.HTMLEncode(RecSet("inlagg"))),vbcrlf,"<br>")%></font></td>
    </tr>
  </table>
  <br>
  <br>
  <%

If RecSet("antalsvar") > 0 Then

RecSet.Close

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From personligt ORDER BY datum DESC"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

%>
  <table width="545" border="0" cellspacing="0" cellpadding="0">
    <tr> 
      <td colspan="3"> 
        <div align="center"><font size="4" face="Verdana, Arial, Helvetica, sans-serif">Svar 
          p&aring; detta inl&auml;gg</font></div>
      </td>
    </tr>
    <tr> 
      <td><b><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Rubrik</font></b></td>
      <td><b><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Namn</font></b></td>
      <td> 
        <div align="right"><font color="#000000"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Datum</font></b></font></div>
      </td>
    </tr>
    <%
Do Until RecSet.EOF

If int(RecSet("ref_id")) = int(ID2) Then
%>
    <tr> 
      <td bgcolor="#FF9900"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="svar.asp?ID=<%=RecSet("id")%>"><%=RecSet("rubrik")%></a></font></td>
      <td bgcolor="#FF9900"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet("namn")%></font></td>
      <td bgcolor="#FF9900"> 
        <div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet("datum")%></font></div>
      </td>
    </tr>
    <%
End If

RecSet.MoveNext
Loop
%>
  </table>
  <%End If%>
</div>
<form name="forum" method="post" onSubmit="return verifiera()" action="add_post.asp?ID=svar&ref_id=<%=ID2%>">
  <div align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Svara 
    p&aring; detta inl&auml;gg:</b><br>
    <input type="text" name="namn" size="30" maxlength="50" class="table">
    Namn<br>
    <input type="text" name="epost" size="30" maxlength="50" class="table">
    Epost <br>
    <input type="text" name="rubrik" size="30" maxlength="50" class="table">
    Rubrik<br>
    Fr&aring;ga/inl&auml;gg <br>
    <textarea name="inlagg" cols="45" rows="7" class="table"></textarea>
    <br>
    <input type="submit" name="kanpp" value="Skicka" class="knapp">
    <input type="reset" name="Submit2" value="Rensa" class="knapp">
    </font> </div>
</form>
<br>
<font size="1" face="Verdana, Arial, Helvetica, sans-serif"> </font> 
<%RecSet.Close
Connect.Close
%>
<font size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="default.asp">Tillbaka</a></font> 
</body>
</html>

Snälla tror ni att ni kan hitta felet...

Medlem sedan juni 200032 967 inlägg
#12

Om du berättar vad det är för knas / knasmeddelande så är det lättare att hjälpa dig. :-)

Mvh,

------------------
All your base are belong to me.

Medlem sedan dec. 20001 626 inlägg
#13

felet är som nämnts tidigare dvs:

Microsoft OLE DB Provider for ODBC Drivers fel '80040e14' 
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'id='. 

/ska/forum/inlagg.asp, rad 13
Medlem sedan juni 200032 967 inlägg
#14

Och knaset är att Request.Querystring("id") är tom. Varifrån ska den komma?

------------------
All your base are belong to me.

Medlem sedan dec. 20001 626 inlägg
#15

kanske från den här filen?? jag vet inte hur ska jag fixa det...

<!-- #include file="..\adovbs.inc" -->

<html>
<head>
<title>Asp Forumet</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script language="JavaScript">
<!--
function verifiera() 
{

if (document.forum.namn.value == "") 
{ 
alert("Du måste skriva in ett namn!! :-)");
return false ;
} 

if (document.forum.epost.value == "" &#0124;&#0124; 
document.forum.epost.value.indexOf('@', 0) == -1) 
{
alert("Ogiltig E-Post adress!");
return false; 
}

if (document.forum.rubrik.value == "") 
{ 
alert("Du måste skriva en rubrik");
return false;
} 

if (document.forum.inlagg.value == "") 
{ 
alert("Nu glömde du skriva själva inlägget!! ;-)");
return false;
} 

}
// -->
</SCRIPT>

<LINK REL=stylesheet HREF="../style.css" TYPE="text/css"> 

</head>

<body bgcolor="#FFFFFF" text="#000000">
<div align="left"> 
  <table width="545" border="0" cellspacing="0" cellpadding="2">
    <tr> 
      <td class="tabell" bgcolor="#FF9900"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Asp 
        forumet</font></b></td>
    </tr>
  </table>
  <br>
  <table width="545" border="0" cellspacing="0" cellpadding="0">
    <tr> 
      <td width="25"><font color="#000000" face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>
      <td width="270"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#000000">Rubrik</font></b></td>
      <td width="125"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#000000">Namn</font></b></td>
      <td width="125"> 
        <div align="left"><font color="#000000" face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>Datum</b></font></div>
      </td>
    </tr>
    <%

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("..\db.mdb")&";"

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From personligt ORDER BY datum DESC"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
	
Do Until RecSet.EOF

If RecSet("ref_id") = 0 Then
id = RecSet("id")
%>
    <tr> 
      <td width="25"><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FF0000"> 
        <%If Recset("datum") > Now-3 Then%>
        Nytt 
        <%End If%>
        </font></td>
      <td width="270" bgcolor="#FF9933"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="inlagg.asp?id=<%=id%>"><%=RecSet("rubrik")%></a></font></td>
      <td width="125" bgcolor="#FF9933"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet("namn")%></font></td>
      <td width="125" bgcolor="#FF9933"> 
        <div align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet("datum")%></font></div>
      </td>
    </tr>
    <%
	Set RecSet2 = Server.CreateObject("ADODB.Recordset")

	Addera = "Select * From personligt ORDER BY datum DESC"
	RecSet2.Open Addera, Connect, adOpenStatic, adLockOptimistic
  
	Do Until RecSet2.EOF
  
	If id = RecSet2("ref_id") Then
	id2=RecSet2("id")

	%>
    <tr> 
      <td width="25" bgcolor="#FFFFFF">&nbsp;</td>
      <td width="270" bgcolor="#FFFFFF"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> 
        -svar-> <a href="svar.asp?id=<%=id2%>"><%=RecSet2("rubrik")%></a></font></td>
      <td width="125" bgcolor="#FFFFFF"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet2("namn")%></font></td>
      <td width="125" bgcolor="#FFFFFF"> 
        <div align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet2("datum")%></font></div>
      </td>
    </tr>
    <% End If
	
	RecSet2.MoveNext
	Loop

	%>
    <%End If

RecSet.MoveNext
Loop

%>
  </table>
</div>
<form name="forum" onSubmit="return verifiera()" method="post" action="add_post.asp">
  <div align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>L&auml;gg 
    till ett inl&auml;gg:</b><br>
    <input type="text" name="namn" size="30" maxlength="50" class="table">
    Namn<br>
    <input type="text" name="epost" size="30" maxlength="50" class="table">
    Epost <br>
    <input type="text" name="rubrik" size="30" maxlength="50" class="table">
    Rubrik<br>
    Fr&aring;ga/inl&auml;gg <br>
    <textarea name="inlagg" cols="45" rows="7" class="table"></textarea>
    <br>
    <input type="submit" name="submit" value="Skicka" class="knapp">
    <input type="reset" name="Submit2" value="Rensa" class="knapp">
    </font> </div>
</form>
</body>
</html>
Medlem sedan juni 200032 967 inlägg
#16

För att Request.Querystring("id") skall ha ett värde så måste du ju anropa asp-filen på det sättet, genom att antingen skapa en länk som ser ut som "blabla.asp?id=23" där 23 är värdet som ID2 ska ha, eller direkt skriva in det i adressraden i webbläsaren.

Vad vill du att det ska vara för värde? Var vill du att det ska komma ifrån?

------------------
All your base are belong to me.

Medlem sedan dec. 20001 626 inlägg
#17

det är ett forum jag försöker att bygga på nytt...

Medlem sedan feb. 20012 412 inlägg
#18

Hej!

Varifrån i koden kommer värdet som Request.Querystring("id") ska innehålla?

mvh Jörgen ;)

------------------
Varför bråka när man kan kramas?

Medlem sedan dec. 20001 626 inlägg
#19

Jag har ingen aning, alltså kan jag sudda ut den raden och få forumet att fungera, eller ska jag lägga t till ngn rad?? och isådana fall vad??

Jag tror felet ligger i min databas fortfarande och inte i själva koden...

min databas bestå av tabellen presentation och kolumnerna: ID, Namn, epost, rubrik, inlagg, datum, ipnummer, ref_id

Jag tror det är den där ref_id som spökar, eller vad säger ni?

Medlem sedan juni 200032 967 inlägg
#20
If RecSet("ref_id") = 0 Then
id = RecSet("id")
%>
<tr> 
<td width="25"><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FF0000"> 
<%If Recset("datum") > Now-3 Then%>
Nytt 
<%End If%>
</font></td>
<td width="270" bgcolor="#FF9933"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="inlagg.asp?id=<%=id%>"><%=RecSet("rubrik")%></a></font></td>

Jag antar att det är denna länk som strular. När du klickar på länken, står det då inlagg.asp?id= eller inlagg.asp?id=23, där 23 är postens id i tabellen?

det känns dessutom som If RecSet("ref_id") = 0 Then
id = RecSet("id")
skall stå på en och samma rad, liksom den jämförelsen med RecSet2.

Alltså:

If RecSet("ref_id") = 0 Then id = RecSet("id")

respektive

If id = RecSet2("ref_id") Then id2=RecSet2("id")

Nu måste jag pysa, men jag kollar in senare.

Red: Nu har jag kommit till jobbet, och undrar då genast vad dessa två if-satser gör. Det känns som att det händer att variabeln id kanske aldrig får ett värde.

Mvh,

------------------
All your base are belong to me.

[Redigerat av @nders den 26 okt 2001]

287 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
157 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)