Hej jag har gjort en sida som visar specifika info om en post.
Den öppnas vanligt genom förfrågan om vilken id posten har:
<%Set RS=Conn.Execute("Select * From opgave Where id=" & Request.QueryString("ID"))%>
Detta funkar prima men nu vill jag hämta in saker från ett annat table i databasen och också visa detta på den specifika posten.
Det är då svar till posten och ska bli lite forum linknande.
Då har jag gjort så att jag har ett annat table som heter "besvar" som betyder i princip svar på danska. Varje post där har ett datum, ett id från den andra databasen, ett eget id som är helt irrellevant. och en författare.
så mitt i min specifika visning av posten har jag slängt in detta vilket jag inte kan få till att funka, antagligen något stort fel på koden eftersom att jag inte är särkillt haj på sånt här än. Var ligger felet, går det att göra det smartare osv:
<%SQL = "SELECT * FROM besvar WHERE opgave_id <> " & Request.QueryString("ID") & " Order By dato ASC"
RecSet.Open SQL, Conn
If RecSet.EOF Then%>
<tr>
<td width="120" align="left" valign="top" style="font-size: 12px;"><b>Ingen svar</b></td><td align="left" valign="top" style="font-size: 12px;"></td>
</tr>
<%Else
Do While Not RecSet.EOF%>
<tr>
<td width="120" align="left" valign="top" style="font-size: 12px;"><b>Svar</b> af </td><td align="left" valign="top" style="font-size: 12px;"><%=RS("navn")%> </td>
</tr>
<tr>
<td width="120" align="left" valign="top" style="font-size: 12px;">Information: </td><td align="left" valign="top" style="font-size: 12px;"><%=Replace(RS("besvar"),vbCrLf,"<br>")%></td>
</tr>
<%RecSet.MoveNext
Loop%>
<%End If%>
<%RecSet.Close
Set RecSet = Nothing%>
När jag skriver id = 308 så funkar det men skirver jag WHERE opgave_id = 209 eller att den ska hämta från Querystringen så funkar det ej, får detta felet:
Microsoft JET Database Engine error '80040e07'
Data type mismatch in criteria expression.
/afd/afd-it/opgave.asp, line 166
hämtar jag opgave_id så får jag 209 så det funkar...
För att din querystring inte inehåller något antagligen.
Se till att alltid testa att skriva ut din sql-sats för att kontrollera om värdena följer med.
SQL = "SELECT * FROM besvar WHERE opgave_id <> " & Request.QueryString("ID") & " Order By dato ASC"
Response.write "Debug: "& SQL
Response.end
Alltså ID = 308 är ju id:n svaret få vilken är helt irrelevant..
opgave_id är den id som sparas så jag vet vilken post av opgaverne som svaret tillhör. så opgave_id
= 209 är den som gäller
Det va bara jag som testat mellan RecSet och RS men det har inget med saken att göra, båda gav fel.
jag har ju inget Recset när jag skriver SQL? allså är inte allting jag gjort är fel eller är det kanske att jag överhuvudtaget inte stänger den gamla databas öppningen? jag lägger upp hela sidan som bifogat textdok.