aleborgMedlem sedan jan. 20013 341 inlägg Jag använder PatrikB's paging ifrån http://cgi.webforum.nu/wf/Forum11/HTML/003221.html
Jag får följande fel:
ADODB.Recordset error '800a0cb3'
Object or provider is not capable of performing requested operation.
/en/user_guestbook.asp, line 59
på den raden finns
objRS.AbsolutePage = intPage
nån som vet vad som kan va fel?
Använder MySQL!
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "absolut"
eSQL="Select * From Users Where UserID="& Request.QueryString("show_user")
Set user=Conn.Execute(eSQL)
rSQL="Select * From User_Info Where Info_Bel="& user("UserID")
Set info=Conn.Execute(rSQL)
%>
html...
<%
intPageSize = 10
intPage = Request.QueryString("page")
If intPage = "" Then intPage = 1
strSQL = "SELECT * FROM Guestbook Where Gbook_Bel="& Cint(Request.QueryString("show_user")) &" ORDER BY Gbook_Date DESC"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, Conn, 3, 1
objRS.PageSize = intPageSize
objRS.AbsolutePage = intPage
intTotalPages = objRS.PageCount
If objRS.EOF Then
If Right(user("Username"),1)="s" Then
Response.Write user("Username") &" guestbook is empty!"
Else
Response.Write user("Username") &"'s guestbook is empty!"
End If
Else
Do Until objRS.EOF or intRecordCount >= intPageSize
intRecordCount = intRecordCount + 1
wSQL="Select * From Users Where UserID="& objRS("Gbook_Signer")
Set us=Conn.Execute(wSQL)
qSQL="Select * From User_Info Where Info_Bel="& user("UserID")
Set inh=Conn.Execute(qSQL)
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td rowspan="2" width="60"> </td>
<td><a href="user_info.asp?show_user=<%=us("UserID")%>"><%=us("Username")%></a></td>
</tr>
<tr>
<td><%=Replace(Server.HTMLEncode(objRS("Gbook_Text")), vbcrlf, "<br>")%></td>
</tr>
</table>
<%
inh.Close
Set inh=Nothing
us.Close
Set us=Nothing
objRS.MoveNext
Loop
End If
objRS.Close
Set objRS = Nothing
'## -- visa sidnavigeringen --
'## -- intPage = vilken sida som ska visas --
'## -- intTotalPages = hur många sidor som recordsetet är uppdelat i --
Call PageNavigation(intPage, intTotalPages)
------------------
Data-Doktorn
Min egen musik!
Mitt coverband
[Redigerat av aleborg den 02 dec 2001]
jorgenMedlem sedan feb. 20012 412 inlägg Hej, jag använder det paging scriptet tillsamans med mysql, och det funkar höjdens.
Jag känner inte igen så många rader i din kod som härstammar från orginalscriptet. Så det är svårt att hjälpa dig. Vet ju inte hur allt annat ser ut heller.
red: visste inte att han gjort 2 versioner, jag använder den andre. Det var någ därför jag inte kände igen det :(
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?
[Redigerat av jorgen den 02 dec 2001]
aleborgMedlem sedan jan. 20013 341 inlägg Var hittade du den Do loopen?
Jag har däremot lagt in annan kod för hämtning av data i andra tabeller! Tog även bort alla kommentarer! Och inkluderade inte subben här!
Vilket fall som helst gjorde jag om allt och la in orginal koden och ändrade ytterst lite
<%
Option Explicit
Dim objConn
Dim strConnString
Dim strSQL
Dim objRS
Dim strName
Dim strComment
Dim dteDate
Dim intPageSize
Dim intPage
Dim intTotalPages
Dim intRecordCount
'## -- connection string, vilken provider och db ska användas --
strConnString = "absolut"
'## -- hur många inlägg ska visas per sida --
intPageSize = 10
'## -- vilken sida ska visas --
intPage = Request.QueryString("page")
'## -- om ingen querystring med sidvärde hittas, visa då första sidan --
If intPage = "" Then intPage = 1
%>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open strConnString
strSQL = "SELECT * FROM Guestbook Where Gbook_Bel="& Cint(Request.QueryString("show_user")) &" ORDER BY Gbook_Date DESC"
'## -- skapa ett recordset --
Set objRS = Server.CreateObject("ADODB.Recordset")
'## -- hur många poster ska visas per sida --
objRS.PageSize = intPageSize
'## -- öppna och hämta alla records --
objRS.Open strSQL, objConn, 3, 1
'## -- vilken sida i recordset uppdelningen ska visas --
objRS.AbsolutePage = intPage
'## -- hur många sidor finns i recordset uppdelningen --
intTotalPages = objRS.PageCount
If objRS.EOF Then
Response.Write "Det finns inga inlägg."
Else
'## -- lista alla inlägg som finns i db --
Do Until objRS.EOF or intRecordCount >= intPageSize
intRecordCount = intRecordCount + 1
strName = objRS(1)
strComment = objRS(2)
dteDate = objRS(3)
Response.Write "<B>Namn:</B> " & strName & "<BR>" & _
"<B>Datum:</B> " & dteDate & "<BR>" & _
"<B>Kommentar:</B><BR>" & _
strComment & _
"<HR size=""1"" noshade>"
objRS.MoveNext
Loop
End If
'## -- clean up --
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
'## -- visa sidnavigeringen --
'## -- intPage = vilken sida som ska visas --
'## -- intTotalPages = hur många sidor som recordsetet är uppdelat i --
Call PageNavigation(intPage, intTotalPages)
%>
</BODY>
</HTML>
<%
'## -- skapa sid-navigering --
Sub PageNavigation(ByVal WichPage, ByVal HowManyPages)
Dim strScriptName
Dim I
'## -- vilken sida ska navigeringen länka till --
strScriptName = Request.ServerVariables("SCRIPT_NAME")
'## -- visa föregående, länkat eller olänkat beroende på vilken sida som visas --
If CInt(WichPage) > 1 Then
Response.Write "<A href='" & strScriptName & "?" & _
"page=" & WichPage - 1 & "'><< Föregående</A> "
Else
Response.Write "<< Föregående "
End If
'## -- lista ut alla sidnummer --
For I = 1 To HowManyPages
If CInt(WichPage) <> I Then
Response.Write "<A href='" & strScriptName & "?" & _
"page=" & I & "'>" & I & "</A> "
Else
Response.Write "[ <B>" & I & "</B> ] "
End If
Next
'## -- visa Nästa, länkad eller olänkad beroende på vilken sida som visas --
If CInt(WichPage) < CInt(HowManyPages) Then
Response.Write "<A href='" & strScriptName & "?" & _
"page=" & WichPage + 1 & "'>Nästa >>"
Else
Response.Write "Nästa >>"
End If
End Sub
%>
Nu får jag:
ADODB.Recordset error '800a0cb3'
Object or provider is not capable of performing requested operation.
/en/user_guestbook.asp, line 47
vilket är:
objRS.AbsolutePage = intPage
Jag har använt koden flera gånger innan och då har den alltid fungerat, men då har jag använt Access 2000 eller SQL server, nu är det MySQL!
------------------
Data-Doktorn
Min egen musik!
Mitt coverband
jorgenMedlem sedan feb. 20012 412 inlägg Hej!
En databaskoppling i MySQL ser ut enligt följande:
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Driver={Mysql};Server=mysql.server.com;Database=databasnamn;UID=användarnamn;PWD=lösenord"
Här hittade jag do-loopen:
Do Until objRS.EOF or intRecordCount >= intPageSize
intRecordCount = intRecordCount + 1
strName = objRS(1)
strComment = objRS(2)
dteDate = objRS(3)
Response.Write "<B>Namn:</B> " & strName & "<BR>" & _
"<B>Datum:</B> " & dteDate & "<BR>" & _
"<B>Kommentar:</B><BR>" & _
strComment & _
"<HR size=""1"" noshade>"
objRS.MoveNext
Loop
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?
aleborgMedlem sedan jan. 20013 341 inlägg men den finns ju i orginal koden, inget jag har lagt dit :)
Får fortfarande samma fel och på samma rad :(
------------------
Data-Doktorn
Min egen musik!
Mitt coverband
aleborgMedlem sedan jan. 20013 341 inlägg fick det att funka, hittade ett tips i en annan tråd!
men jag vet inte vad det gör,
objRS.cursorlocation = 3
att läggas till innan öppnandet av recordsetet. Vad gör raden?
------------------
Data-Doktorn
Min egen musik!
Mitt coverband
LarsGMedlem sedan dec. 200012 464 inlägg Det innebär att innehållet i recordsetet lagras på klienten och inte på databasservern.
------------------
essentitia preter non sans multiplicandum
aleborgMedlem sedan jan. 20013 341 inlägg bra/dåligt? Vad gör det för hastighet mm? Vad är det som krävt att jag var tvungen att använda det?
------------------
Data-Doktorn
Min egen musik!
Mitt coverband
LarsGMedlem sedan dec. 200012 464 inlägg Det är bra för prestandan då det blir färre anrop till databasen.
Det är sämre då du använder mer minne på webservern för att lagra data. Så om du har stora datamängder är det inte så bra.
Vad är det som krävt att jag var tvungen att använda det?
brister i Myodbc.
------------------
essentitia preter non sans multiplicandum