Och tyvär så ligger servern nere så nu kommer man inte åt det. Vad är problemet, dvs hur ser ditt felmeddelande ut? Hur ser koden ut på de rader där felet uppstår? Jag antar att ditt ID fortfarande är en sträng (text) som i dina tidigare frågor? kommer in där nu så kompliterad det nu. 1) raden är kommenteradSql problem i en stor funktion.
och felet uppstod när jag skicka gästboks inlägget i forumläret som jag hade gjort.
Men när jag skrev det direkt till databasen så funka det och inga problem.
men koden som jag har är.
<code>
Set Rst = objconn.execute("Select * From User Where Id ='" & ObjRs("FromUser") & "'")
If not rst.eof Then
koden
else
koden här uppstår problemet.
end if.
<code>
men rst borde väl funka och inte strulla efter som rst inte ligger efter if vilkoret ju.
När jagk ommer in på servern kommer jag att komplitera det inlägget.
jag såg att det ser lite konstigt med <br> och att code inte funkar.
jag vet inte varför det är så men hoppas det blir som vanlig snart igen så man kan få det finnare i vissningen.Sv: Sql problem i en stor funktion.
Sv: Sql problem i en stor funktion.
koden ser ut så här och rad 177 uppstår felet.
<code>
<!--#INCLUDE FILE="pagin.asp"-->
<Form method="post" Action="gastprov.asp?Guest=True&Userid=<% = Request.QueryString("Userid") %>">
<TextArea Cols="15" Rows="7" Name="Messages">
</TextArea>
<input type="Submit" Value="Skicka inlägg">
</Form>
<%
If Request.QueryString("Guest") = "True" Then
Set Con = Server.CreateObject("Adodb.Connection")
Con.open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.MapPath("../Dbq/Community.mdb") & ";"
Set Rst = Con.execute("Select * From User Where id='" & Session("Userid") & "'")
If not rst.eof Then
sql ="Insert Into Guestbook"
Sql = sql & "(FromUser,ToUser,Messages)"
Sql = Sql & "Values('" & Session("Userid")& "','" & Replace(Request.QueryString("Userid"),"'","'") & "','" & Replace(Request.Form("Messages"),"'","'") & "')"
Response.write SQL
If Request.Form("Messages") = "" Then
'inget vissas
Response.write "Gästboks inlägget får inte vara null värde."
Else 'rad 20
Set Rst = Con.execute(sql)
Response.write "Gstboks inlgget r sparad!"
end if
else
'else fr om koden ###if not rst.eof sen fr kontrollera om det finns i databasen ja kr det innan else
'det hr krs om inte anvndaren finns med i databasen anvndare
End if
Else
'inget hnde
End if
If Session("Userid") = Request.QUeryString("Userid") Then
Response.write "<Table border=""0"">"
'## -- skapa connection object och ppna databasen --
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.MapPath("../Dbq/community.mdb") & ";"
'## -- hur mnga poster ska visas per sida --
intPageSize = 10 '## -- byt ut till hur mnga poster du vill ska visas per sida -- 'rad 40
'## -- vilken sida ska visas --
intPage = Request.QueryString("page")
'rad 15
'*## -- kontrollera s att inte intPage variabeln r tom --
If intPage = "" Then intPage = 1 '## -- visa frsta sidan som default --
'## -- sql-frga fr att hmta data frn databasen --
strSQL = "SELECT * FROM Guestbook WHERE ToUser = '" & Request.QueryString("Userid") & "' ORDER BY Datum desc, Tid desc"
'## -- skapa och ppna recordsetet --
Set objRS = Server.CreateObject("ADODB.Recordset")
With objRS
.ActiveConnection = objConn
.Source = strSQL
'## -- bestmmer hur mnga poster som varje sida ska best av i recordsetet --
.PageSize = intPageSize
.CursorType = 3
.LockType = 1 'rad 60
.Open
End With
'## -- kontrollera om ngra poster har returnerats eller inte --
If Not objRS.EOF Then
'## -- poster har returnerats --
'## -- visa rtt sida i recordsetet --
objRS.AbsolutePage = intPage
'## -- hur mnga sidor bestr recordsetet av --
intTotalPages = objRS.PageCount
'## -- visa sidnavigeringen --
Call PageNavigation(intPage, intTotalPages)
'## -- loopa igenom recordsetet och visa posterna fr beskaren/anvndaren --
Do Until objRS.EOF OR intCounter >= intPageSize
intCounter = intCounter + 1
Response.write "<Tr>" 'rad 80
Response.write "</Tr>"
Response.write "<Tr>"
Response.write "<Td>Datum & tid " & ObjRs("Datum") & " " & ObjRs("Tid") & "</Td>"
Response.write "</Tr>"
Response.write "<Tr>"
Set Rst = objconn.execute("Select * From User Where User ='" & Objrs("FromUser") & "'")
If not rst.eof then
Response.write "<Tr>"
Response.write "<Td>" & ObjRs("FromUser") & "</Td>"
else
Response.write "<Td>" & objRs("FromUser") & "</Td>"
end if
Response.write "</Tr>"
Response.write "<Tr>"
Response.write "<Td>" & ObjRs("Messages") & "</Td>"
Response.write "</Tr>"
'## -- printa ut informationen till beskare/anvndaren --
objRS.MoveNext
Loop 'rad 100
Else
'## -- inga poster returnerades --
'## -- visa meddelande att inga poster hittades fr anvndaren --
End If
'## -- rensa up --
objRS.Close
Set objRS = Nothing
objConn.Close
Set objconn = Nothing
'## -- visa sidnavigeringen --
' Call PageNavigation(intPage, intTotalPages)
'## -- include filen nedan innehller sjlva subrutinen fr sidnavigeringen --
Response.write "</Table>"
Else
Response.Write "Du kan bara lsa gstboks inlggen och inte radera eller besvara dom OBS!" 'rad 120
Response.write "<Table border=""0"">"
'## -- skapa connection object och ppna databasen --
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.MapPath("../Dbq/community.mdb") & ";"
'## -- hur mnga poster ska visas per sida --
intPageSize = 10 '## -- byt ut till hur mnga poster du vill ska visas per sida --
'## -- vilken sida ska visas --
intPage = Request.QueryString("page")
'rad 15
'*## -- kontrollera s att inte intPage variabeln r tom --
If intPage = "" Then intPage = 1 '## -- visa frsta sidan som default --
'## -- sql-frga fr att hmta data frn databasen --
strSQL = "SELECT * FROM Guestbook WHERE ToUser = '" & Request.QueryString("Userid") & "' ORDER BY Datum desc, Tid desc"
'## -- skapa och ppna recordsetet --
Set objRS = Server.CreateObject("ADODB.Recordset")
With objRS 'rad 140
.ActiveConnection = objConn
.Source = strSQL
'## -- bestmmer hur mnga poster som varje sida ska best av i recordsetet --
.PageSize = intPageSize
.CursorType = 3 'rad 30
.LockType = 1
.Open
End With
'## -- kontrollera om ngra poster har returnerats eller inte --
If Not objRS.EOF Then
'## -- poster har returnerats --
'## -- visa rtt sida i recordsetet --
objRS.AbsolutePage = intPage
'## -- hur mnga sidor bestr recordsetet av --
intTotalPages = objRS.PageCount
'rad 160
'## -- visa sidnavigeringen -- 'rad 161
Call PageNavigation(intPage, intTotalPages)
'## -- loopa igenom recordsetet och visa posterna fr beskaren/anvndaren --
Do Until objRS.EOF OR intCounter >= intPageSize
intCounter = intCounter + 1
Response.write "<Tr>"
Response.write "</Tr>"
Response.write "<Tr>" 'rad 169
Response.write "<Td>Datum & tid " & ObjRs("Datum") & " " & ObjRs("Tid") & "</Td>"
Response.write "</Tr>" 'rad 171
Set Rst = objconn.execute("Select * From User Where User ='" & Objrs("FromUser") & "'")
If not rst.eof then
Response.write "<Tr>"
Response.write "<Td>" & ObjRs("FromUser") & "</Td>"
else 'rad 176
'Response.write "<Td>" & objRs("FromUser") & "</Td>" <-- felet uppstår här.
end if
Response.write "</Tr>"
Response.write "<Tr>"
Response.write "<Td>" & ObjRs("Messages") & "</Td>"
Response.write "</Tr>"
'## -- printa ut informationen till beskare/anvndaren --
objRS.MoveNext
Loop
Else
'## -- inga poster returnerades --
'## -- visa meddelande att inga poster hittades fr anvndaren --
End If
'## -- rensa up --
objRS.Close
Set objRS = Nothing
objConn.Close
Set objconn = Nothing
'## -- visa sidnavigeringen --
' Call PageNavigation(intPage, intTotalPages)
'## -- include filen nedan innehller sjlva subrutinen fr sidnavigeringen --
Response.write "</Table>"
Response.write "Du kommer frn en annan sida drfr kan du inget gra ljust nu!"
end if
%>
</code>
felet ligger i raden med <-- felet kommer här.
jag får följande felmedelande:
error '80020009'
Exception occurred.
/plugget/user/gastprov.asp, line 177 Sv: Sql problem i en stor funktion.
2) den körs ifall recordsetet är tomt...