Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [ASP] errore paginazione dati da DB2 AS400

    Ciao sto cercando di paginare i dati prelevati da un DB2 su una macchina AS400, ma mi da degli strani errori :

    Questa è la pagina completa

    codice:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <%
    On Error Resume Next
    x = 0
    page = Request.QueryString("page")
    perpage = 30
    strConn = "Provider=IBMDA400;Data source=AS400;User Id=userName;Password=password"
    Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open strConn
    
    Set objRS = Server.CreateObject("ADODB.Recordset")
    ObjRS.Open "SELECT * FROM COSNET.TABAR01", objConn,1,3
    
    If page = "" Then
      page = ObjRS.PageCount
    End If
    ObjRS.PageSize = perpage
    ObjRS.AbsolutePage = page
    %>
    <html>
    <head>
    <title>Pagina di Prova Lettura DB2</title>
    <link href="../CSS/layout.css" rel="stylesheet" type="text/css">
    </head>
    <body>
    <table>
    <%
    For i = 1 to perpage
      If Not ObjRS.EOF Then
          Response.Write("<tr>")
    	  Response.Write("<td><span class='grassetto'>" & ObjRS("T01BKG_REF") & "</span></td></tr>")
        ObjRS.Movenext
      Else
          Response.Write("Non sono stati trovati records")
    	  Response.End()
      End If
    Next
        Response.Write "<tr><td>Pagine : "
    	For pag = 1 to ObjRS.PageCount
    	  If page = pag Then
    	    Response.Write "Page = pag</td></tr>"
    		Response.Write("" & pag & "</td></tr>")
    		Response.Write("Page: " & "   " & page)
    		Response.Write("Pag: " & "   " & pag)
    	  Else
    		Response.Write("Page: " & "   " & page)
    		Response.Write("Pag: " & "   " & pag)
    		Response.Write("" & pag & "</td></tr>")
    	    Response.Write "Page <> pag</td></tr>"
    	  End If
    	Next
    	Response.Write("Page: " & "   " & page)
    	Response.Write("Pag: " & "   " & pag)
    	Response.Write("PageCount: " & "   " & ObjRS.PageCount)
    	Response.Write("PageSize: " & "   " & ObjRS.PageSize)
    	Response.Write("Absolute: " & "   " & ObjRS.AbsolutePage)
    %>
    </table>
    </body>
    </html>
    <%
    ObjRS.Close
    Set ObjRS = Nothing
    ObjConn.CLose
    Set ObjConn = Nothing
    If err.number <> 0 Then
       response.write err.number
       response.write err.description
    End If
    %>
    In questo modo mi risponde che non sono stati trovati records ...

    Se invece cambio questa riga

    codice:
    If page = "" Then
      page = ObjRS.PageCount
    End If
    
    In questo modo vedo i primi 30 records, ma non vedo le pagine successive If page = "" Then
      page = 1 
    End If
    Infine se chiamo la pagina come DB2?page=3, i record li vedo.

    Inoltre nel loop, ObjRS.PageCount mi risponde sempre 0

  2. #2
    Non riesco a capire, ma non è che sui DB2 l' oggetto RecordSet non riesce a fornirmi un valore esatto per pageCount???

  3. #3
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    prova a dichiarare
    objRs.CursorLocation = 3
    objRs.CursorTypen = 1
    objRs.LockType = 3
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  4. #4
    Guarda ho fatto cosi'

    Set objRS = Server.CreateObject("ADODB.Recordset")
    objRs.CursorLocation = 3
    objRs.CursorType = 1
    objRs.LockType = 3

    ObjRS.Open "SELECT * FROM COSNET.TABAR01", objConn



    Ma non va del tutto adesso ... mi risponde buffer timeout

  5. #5
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    ObjRS.Open "SELECT * FROM COSNET.TABAR01", objConn,1,3

    così?
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  6. #6
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    prova a togliere anche "on error resume next" altrimenti non si capisce se va in errore
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  7. #7
    Ma adesso ho messo in questo modo

    codice:
    Set objRS = Server.CreateObject("ADODB.Recordset")
    objRs.CursorLocation = 3 
    objRs.CursorType = 1 
    objRs.LockType = 3
    
    ObjRS.Open "SELECT * FROM COSNET.TABAR01", objConn,1 ,3

    Ma resta in attesa, non mi stampa la pagina, resta con la clessidra ... e poi mi risponde

    Non sono stati trovati records ...

    Ma se chiamo lapagina come DB2.asp?page=1

    e allora 64252

    ma la tabella è piena di records e senza paginare li vedo ...

  8. #8
    ALT se faccio DB2.asp?page=1

    mi risponde i records e sopra le pagine linkate ... insomma sembrerebbe andare ma se chiamo DB2.asp mi da errore e non trova niente

  9. #9
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    per ricavarti il numero di pagine potresti fare anche qualcosa di simile

    'controlli a che pagina sei
    pagina = CInt(request.QueryString( "pag" ))
    if pagina <= 0 Then pagina = 1

    'stabilisci il numero di records per pagina
    PageSize = 10

    numPagine = numeroRecords/PageSize
    If numPagine - CInt(numPagine) > 0 Then
    numPagine = CInt(numPagine +1)
    Else
    numPagine = CInt(numPagine)
    End If


    dove numeroRecords te lo ricavi con una select count(*)
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  10. #10
    esattamente, comunque adesso qualcosa funziona, poi ti aggiorno, adesso mi bevo un coffe, una sigaretta e poi riprendo, altrimenti vado insieme.

    Grazie alla prossima


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.