hallmertMedlem sedan dec. 2004182 inlägg Hejsan!
Håller på med ett script där historiken i en gästbok skall skrivas ut. Vad är det för fel på följande kod?
<div class="rubrik">Historik</div>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.open "provider=Microsoft.Jet.OLEDB.4.0;Data source=" & Server.MapPath("db/fanclub.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * from gb where (id='" & Request.Querystring("id") & "' and fromID='" & Session("id") & "') or (id='" & Session("id") & "' and fromID='" & Request.Querystring("id") & "') order by datum desc"
RecSet.Open Addera, Connect, 1, 2
Do Until RecSet.EOF %>
<%=RecSet("datum")%><br>
<%=RecSet("text")%><p><br>
<%
RecSet.MoveNext
Loop
RecSet.Close
Connect.Close
%>
hallmertMedlem sedan dec. 2004182 inlägg Felmeddelande:
Error Type:
Microsoft JET Database Engine (0x80040E07)
Data type mismatch in criteria expression.
/arbeten/charmtroll/provar.asp, line 10
LarsGMedlem sedan dec. 200012 464 inlägg Addera = "Select * from gb where (id=" & _
Request.Querystring("id") & " and fromID=" & _
Session("id") & ") or (id=" & Session("id") & _
" and fromID=" & Request.Querystring("id") & _
") order by datum desc"
Please, lägg in radbrytningar så jag slipper scrolla i sidled.
@ndersMedlem sedan juni 200032 969 inlägg När det handlar om numeriska fält ska du inte ha apostrofer runt värdena i SQL-frågan.
hallmertMedlem sedan dec. 2004182 inlägg Hm, det fungerade, men den ville inte skriva ut något :/
LarsGMedlem sedan dec. 200012 464 inlägg Då finns inget data som uppfyller villkoren.
Gör en utskrift av frågan och kontrollera att variablerna innehåller de värden du förväntar dig.
En annan sak är du skall enbart ange de kolumner du vill hämta och inte använda select *
hallmertMedlem sedan dec. 2004182 inlägg Hur gör man en utskrift av de då? :P
LarsGMedlem sedan dec. 200012 464 inlägg response.write "SQL:" & addera
response.end
hallmertMedlem sedan dec. 2004182 inlägg Den skrev ut följande:
Select * from gb where (id=224 and fromID=183) or (id=183 and fromID=224) order by datum desc
Jag kollade direkt i databasen, och posten ID=224 har inlägg med fromID=183 och ID=183 har poster med inlägg från fromID=224, mkt märkligt?
LarsGMedlem sedan dec. 200012 464 inlägg
- Byt namn på kolumnen text till något annat eftersom det är ett reserverat ord i Jet SQL.
Är den av typen PM?
I så fall måste den anges sist i select-listan
dvs
select datum,<dittNyaNamnPåTextKolumn> ...
hallmertMedlem sedan dec. 2004182 inlägg Nejdu...
<div class="rubrik">Historik</div><%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.open "provider=Microsoft.Jet.OLEDB.4.0;Data source=" & Server.MapPath("db/fanclub.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * from gb where (id=" & Request.Querystring
("id") & " and fromID=" & Session("id") & ") or (id=" & Session("id") & " and fromID=" & Request.Querystring("id") & ") order by datum desc"
RecSet.Open Addera, Connect, 1, 2
Do Until RecSet.EOF %>
<%=RecSet("datum")%><br>
<%=RecSet("inlagg")%><p><br>
<%
RecSet.MoveNext
Loop
RecSet.Close
Connect.Close
%>
Bytte namn till "inlagg", det ville icke heller fungera.
LarsGMedlem sedan dec. 200012 464 inlägg Jag sade aldrig att namnbytet var tillräckligt.
I så fall måste den anges sist i select-listan
Du måste ändra i select-satsen också
hallmertMedlem sedan dec. 2004182 inlägg Uhm, vart någonstanns då?
LarsGMedlem sedan dec. 200012 464 inlägg Byt
Addera = "Select *
till
Addera = "Select datum,inlagg
hallmertMedlem sedan dec. 2004182 inlägg Hehe, det fungerar fortfarande inte.
LarsGMedlem sedan dec. 200012 464 inlägg Vad får du ut om du kör frågan direkt i Access?
Vad har kolumnen datum för typ?
hallmertMedlem sedan dec. 2004182 inlägg "datum" är typen "Datum/Tid"
"inlagg" är f.ö. "PM".
LarsGMedlem sedan dec. 200012 464 inlägg Du kan ju lägga till en test för att se om du får något resultat från frågan
Byt
RecSet.Open Addera, Connect, 1, 2
Do Until RecSet.EOF %>
<%=RecSet("datum")%><br>
<%=RecSet("inlagg")%><p><br>
<%
RecSet.MoveNext
Loop
RecSet.Close
Connect.Close
%>
till
RecSet.Open Addera, Connect, 1, 2
if RecSet.EOF then
response.write "Det finns ingen historik <br>"
else
Do Until RecSet.EOF %>
<%=RecSet("datum")%><br>
<%=RecSet("inlagg")%><p><br>
<%
RecSet.MoveNext
Loop
end if
RecSet.Close
Connect.Close
%>
hallmertMedlem sedan dec. 2004182 inlägg Okej, den skriver ut att det faktiskt inte finns några inlägg. Men det GÖR det ju, jävligt konstigt?!
LarsGMedlem sedan dec. 200012 464 inlägg Gör du connect mot rätt databas?
Du kanske kör direkt mot en lokal databas och ditt skript kör mot en annan databas på ett web-hotell.