Avatar billede pollas Nybegynder
31. august 2000 - 03:41 Der er 5 kommentarer og
1 løsning

rs.absolutepage

Jeg er ved at følge en ting på activserverpages.dk, hvor man kan page sit recordsæt og lave en \'næste 10 poster\'-funktion.

Jeg har før med succes brugt denne, men er nu ved at hægte en ny MySQL-base op og støder nu på
ADODB.Recordset error \'800a0cb3\'
Object or provider is not capable of performing requested operation.

i den linje, hvor rs.absolutepage sættes lig intpage (hele koden kan ses på http://www.activeserverpages.dk/aspdigital/kapitel2/paging.asp)

Jeg synes jeg er stødt på dette før, men har ingen ide om, hvordan det blev løst...
Avatar billede centauri Nybegynder
31. august 2000 - 08:28 #1
Oben din forbildelse til din Database med følgende

dim objCon \' The connection object
dim objCmd \' The connection object
dim rs \' The recordset object

set objCon = server.createobject(\"ADODB.Connection\")
objCon.Open \"pp\",\"pp_user\",\"pp_pass\"
set objCmd= Server.CreateObject(\"ADODB.Command\")
set objCmd.ActiveConnection = objCon
objCmd.CommandType = 1
Set rs = Server.CreateObject(\"ADODB.Recordset\")
objCmd.CommandText = \"SELECT * FROM [PP] ORDER BY Project_No\"
rs.Open objCmd, ,1,1

Men det vigtigste er rs.Open objCmd, ,1,1
bliver sat til 1,1 og ikke 0,1 som du sikkert har det er der fejlen ligger.
Avatar billede pollas Nybegynder
31. august 2000 - 13:43 #2
Jeg har prøvet at omskrive min conn til databasen, så det ligner dit forlsag, men resultatet er det samme...

Mystisk.
Avatar billede centauri Nybegynder
01. september 2000 - 09:00 #3
Her er et komplet eksempel som jeg briger det virker ihverflad fint nok hos mig


<%
dim objCon \' The connection object
dim objCmd \' The connection object
dim rs \' The recordset object

set objCon = server.createobject(\"ADODB.Connection\")
objCon.Open \"pp\",\"pp_user\",\"pp_pass\"
set objCmd= Server.CreateObject(\"ADODB.Command\")
set objCmd.ActiveConnection = objCon
objCmd.CommandType = 1
Set rs = Server.CreateObject(\"ADODB.Recordset\")
objCmd.CommandText = \"SELECT * FROM [PP] ORDER BY Project_No\"
rs.Open objCmd, ,1,1

intPage = Request(\"page\")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
 
End If

num = rs.RecordCount
If Not (rs.BOF Or rs.EOF) Then

  rs.PageSize = 5
  rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount
  Response.Write \"<p align=center><b>Page \" & intPage & \" of \" & intPageCount & \"</b></p>\"
  %>
<div align=\"center\">
  <center>
  <table border=\"1\" width=\"63%\" cellspacing=\"1\">
   
    <tr>
      <td width=\"21%\"><b>Product Project Nr.</b></td>
      <td width=\"24%\" align=\"center\"><b>Product Manager</b></td>
      <td width=\"100%\" align=\"center\"><b>Designation</b></td>
      <td width=\"10%\" align=\"center\"><b></b><b>View Documents</b></td>

    </tr>


  <%
  Do While Not rs.EOF And intRecCount > 0
  %><tr>
      <td width=\"21%\">&nbsp;<a href=\"view.asp?ID=<%=RS(\"ID\")%>\"><%=RS(\"Project_No\")%></a></td>
  </center>
      <td width=\"24%\" align=\"center\">
        <%=RS(\"Project_Mgr\")%></td>
      <td width=\"100%\" align=\"center\">
        <p align=\"left\"><%=RS(\"Designation\")%>
  <center>
<% if RS(\"Designation\") = \"\" then response.write\"&nbsp;\" end if%></td>
      <td width=\"10%\" align=\"center\"><b></b><a href=\"view_doc.asp?ID=<%=RS(\"ID\")%>\"><img border=\"0\" src=\"icon_dokument.gif\"></a></td>
</tr>

   

 
<%
   
  intRecCount = intRecCount - 1 
  rs.MoveNext
  Loop
End If
%>
  </table>
</div>
<p align=\"center\">&nbsp;</p>

<%
Rs.Close
set ObjCmd=nothing
ObjCon.Close

Response.Write \"<p align=center>Number of found Projects : \" & num &\"</p>\"

Response.Write \"<p align=center>Go to Page \"
For intNum = 1 To intPageCount
  Response.Write \"<a href=default.asp?page=\" & intNum & \">\" & intNum & \"</a> \"
Next

Response.Write \"<p>\"
If Clng(intPage) > 1 Then

  Response.Write \"<p align=center><a href=default.asp?page=\" & intPage - 1 & \"><img border=0 src=ol.gif width=24 height=22 alt=Back></a>\"

Else

  %><p align=\"center\"><img border=\"0\" src=\"nl.gif\" width=\"24\" height=\"22\" alt=\"First Page\"><%
End If

Response.Write \"&nbsp;\"

If Clng(intPage) < Clng(intPageCount) Then

  Response.Write \"<a href=default.asp?page=\" & intPage + 1 & \"><img border=0 src=or.gif width=24 height=22 alt=Forward></a>\"

Else

  %><img border=\"0\" src=\"nr.gif\" width=\"24\" height=\"22\" alt=\"Last Page\"><%
End If
%>
Avatar billede pollas Nybegynder
02. september 2000 - 00:20 #4
Mystisk, mystisk - det virker stadig ikke, og nu har jeg ellers barberet alt overflødigt fjol væk fra siden. Her er min nuværende testkode (der altså ikke virker og stadig giver: ADODB.Recordset error \'800a0cb3\'
Object or provider is not capable of performing requested operation. ):

<html>
<head>
<title>Test</title>
<link rel=\"stylesheet\" type=\"text/css\" href=\"dzl.css\">
</head>

<body marginwidth=0 marginwidth=0 leftmargin=0 topmargin=0>
<table width=\"100%\" align=center cellspacing=0 cellpadding=0 border=0>
<tr><td><h2>Test</h2></td></tr>
<%
    grp = request.querystring(\"grp\")
    intPage = Request(\"page\")
    If isNumeric(intPage) = False Or intPage < 1 Then
        intPage = 1
    End If
       
    Set conn = Server.CreateObject(\"ADODB.Connection\")
    strDSN = \"Driver=MySQL;UID=xx;PWD=xx;Server=xxx.xxx.xxx.xxx;Database=xxx;\"
    conn.Open strDSN
    set objCmd= Server.CreateObject(\"ADODB.Command\")
    set objCmd.ActiveConnection = conn
    objCmd.CommandType = 1
    Set rs = Server.CreateObject(\"ADODB.RecordSet\")
    objCmd.commandtext = \"select * from Dvarer where Gruppe = \'\" & grp & \"\';\"
    rs.Open objCmd, ,1,1
   
If rs.BOF Or rs.EOF Then
response.write \"<tr><td>&nbsp;</td></tr>\"
response.write \"<tr><td align=center colspan=4>Nothing here, dude...</td></tr>\"
Else
  rs.PageSize = 4
  rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount

  Do While Not rs.EOF And intRecCount > 0
  response.write \"<tr><td align=center class=square>\" & rs(\"thumb\") & \"</td></tr>\"
  intRecCount = intRecCount - 1
  rs.movenext
  Loop
 
response.write \"<tr><td>&nbsp;</td>\"
If Clng(intPage) > 1 Then
response.write \"<td><a href=\'tbrowse.asp?page=\" & intPage - 1 & \"&grp=\" & request(\"grp\") & \"\'>Back</a></td>\"
end if

If Clng(intPage) < Clng(intPageCount) Then
response.write \"<td><a href=\'tbrowse.asp?page=\" & intPage + 1 & \"&grp=\" & request(\"grp\") & \"\'>Forward</a></td>\"
end if

response.write \"<td>&nbsp;</td></tr>\"
Rs.Close
set ObjCmd=nothing
conn.Close

End if

%>
</table>
</td></tr>
</body>
</html>

Kan det være min base/udbyder, der ikke kan overhovedet? På samme webhotel har jeg en access-base liggende, hvor dette fungerer fint, men det her er jo MySQL...

Anyone?

/A
Avatar billede lybecker Nybegynder
19. oktober 2000 - 15:12 #5
Jeg får også en fejl, og min kode er næsten identisk!

Jeg får fejl i denne linie

  objRS.AbsolutePage = intPage

Og ja objRS er et Recordset
Avatar billede pollas Nybegynder
31. januar 2001 - 01:24 #6
Hmm, det viser sig efter et nærmere kig på msdn (hvorfor gjorde man ikke det fra starten?), at man for at bruge mySQL skal bruge en client-side cursortype, rs.CursorLocation = 3.

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester