3 messaggi dal 21 gennaio 2003
Salve a tutti,
ho un problema: In una pagina asp con codice per la paginazione se inserisco la query in una stringa, quindi statica
es: StrQuery="SELECT * FROM archivigenerale"
non mi da errore. Se invece la query la genero dinamicamente passandogli i valori da un form effettuando una di ricerca del tipo
Area=request("Area")
StrQuery="SELECT *FROM archiviogenerale WHERE Area='" & Area & "'"
per la prima volta me la fa la ricerca correttamente; quando cerco di accedere alla seconda pagina della paginazione (scusate le ripetizioni)
mi da questo errore:
"Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record."
Penso di aver capito il problema: ogni qualvolta che cliccando sulle pagine seguenti la stringa la perde.
Ho provato a inserire variabili di sessione, ma mi dice che va in conflitto come posso risolvere il tutto.

Vi posto il codice

'Stringa di connessione al DB
DbPath = server.MapPath("../documentazione.mdb")
StrConn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &  DbPath
...
Dim DBConn 
Set DBConn=Server.CreateObject("ADODB.Connection") 
DBConn.Open StrConn
Dim objRS 
Set objRS = Server.CreateObject("ADODB.Recordset") 
RecordsPerPagina = 10 
page = Request("page") 
if page="" then page=1

'******************
oper=Request("mod")
Area=Request("Area")
Titolo=Request("Titolo")
Descrizione=Request("Descrizione")
Tipodoc=Request("Tipodoc")
Codcommessa=Request("Codcommessa")
Redattore=Request("Redattore")
Codviasat=Request("Codviasat")
Dataregdal=Request("dataregdal")
Dataregal=Request("dataregal")
Datapubbldal=Request("datapubbldal")
Datapubblal=Request("datapubblal")
Statodoc=Request("Statodoc")
led=Request("led")

arrTitolo=Split(Titolo, " ")
arrDescr=Split(Descrizione, " ")
arrRedattore=Split(Redattore, " ")


''Composizione Query in base ai campi passati dal form
Sql = ""
Sql = Sql & "SELECT * FROM archiviogenerale WHERE"


if oper="2" then
operatore="AND"
else operatore="OR"
end if


sw=0
if Area<>"null" then

Sql = Sql & " (Area ='" & Area & "') " '& operatore
sw=1
end if
if Titolo<>"" then

if sw=1 then Sql = Sql & "AND"
for i=0 to Ubound(arrTitolo)
if i=0 then Sql = Sql & " ("
if (i>0) then
Sql = Sql & operatore
end if
Sql = Sql & " Titolo LIKE '%" & arrTitolo(i) & "%' "
if i=Ubound(arrTitolo) then Sql = Sql & ") "

next
sw=1
end if
if Descrizione<>"" then

if sw=1 then Sql = Sql & "AND"
for i=0 to Ubound(arrDescr)
if i=0 then Sql = Sql & " ("
if (i>0) then ' and i<Ubound(arrDescr))
Sql = Sql & operatore
end if
Sql = Sql & " Descrprogetto LIKE '%" & arrDescr(i) & "%' "

if i=Ubound(arrDescr) then Sql = Sql & ") "
next
sw=1
end if
if Tipodoc<>"null" then

if sw=1 then Sql = Sql & "AND"
Sql = Sql & " (Tipo='" & Tipodoc & "') "
sw=1
end if
if Codcommessa<>"null" then

if sw=1 then Sql = Sql & "AND"
Sql = Sql & " (Commessa='" & Codcommessa & "') "
sw=1
end if
if Codviasat<>"VXX-YY-AA-NNNNR" then

if sw=1 then Sql = Sql & "AND"
Sql = Sql & " (Cod LIKE '%" & Codviasat & "%') "
sw=1
end if
if Redattore<>"" then

if sw=1 then Sql = Sql & "AND"
for i=0 to Ubound(arrRedattore)
if i=0 then Sql = Sql & " ("
if (i>0) then 'and i<Ubound(arrRedattore))
Sql = Sql & operatore
end if
Sql = Sql & " Redattore LIKE '%" & arrRedattore(i) & "%' "
if i=Ubound(arrRedattore) then Sql = Sql & ") "
next
sw=1
end if
if Statodoc<>"null" then

if sw=1 then Sql = Sql & "AND"
Sql = Sql & " (Statodoc ='" & Statodoc & "') "
sw=1
end if


if (Dataregdal<>"gg/mm/aaaa") and (Dataregdal<>"") then

if sw=1 then Sql = Sql & "AND"
Sql = Sql & " (Datareg >#" & Dataregdal & "#) "
sw=1
end if

if (Dataregal<>"gg/mm/aaaa") and (Dataregal<>"") then

if sw=1 then Sql = Sql & "AND"
Sql = Sql & " (Datareg <#" & Dataregal & "#) "
sw=1
end if

if (Datapubbldal<>"gg/mm/aaaa") and (Datapubbldal<>"") then

if sw=1 then Sql = Sql & "AND"
Sql = Sql & " (Datapubbl >#" & Datapubbldal & "#) "
sw=1
end if

if (Datapubblal<>"gg/mm/aaaa") and (Datapubblal<>"") then

if sw=1 then Sql = Sql & "AND"
Sql = Sql & " (Datapubbl <#" & Datapubblal & "#) "
sw=1
end if


Sql = Sql & " ORDER BY Datareg, Datapubbl, Area, Cod"



if led<>"submit" then Response.End

'Inizializzazione variabile che indica 
'che è stato trovato almeno un record valido
swdoc=0

'****************** 

'strSQL = "SELECT * FROM archiviogenerale WHERE AREA='Qualità' AND Tipo='Specifiche Tecniche'" 
objRS.open Sql, DBConn, 1
objRS.PageSize = RecordsPerPagina 'Memorizza i record da visualizzare per pagina
objRS.AbsolutePage = page 'Memorizzo il numero della pagina attuale
page=cint(page) 
If objRS.Eof=True or objRS.Bof=True then 
Response.Write "<P>Nessun risultato trovato</P>" 
Else

'cambio variabile indica se è stato trovato almeno un record valido
swdoc=1 

'Variabile che memorizza di quanti record è popolato il Recordset
numerorecord=objRS.RecordCount
'Response.Write numerorecord 

'inizio elenco numerato generato dinamicamente
Response.Write "<ol start=" & page*10+1-10 &">"
For i=1 to RecordsPerPagina 
  
  if Not objRS.EOF then 
  Response.Write "<hr><li>"
  if ((i mod 2) =0) then
  Response.Write "<div style=background:#e9ffff>"'#ccffcc>"
  else 
  Response.Write "<div style=background:ivory>"
  end if 
  for j=0 to objRS.fields.count-1
    
      if objRS.fields(j).name = "Nomefile" then
        Response.Write "¬ <b>" & objRS.fields(j).name & "</b> = " & "<a href="& chr(34) & objRS.fields(j) & chr(34)& ">" & objRS.fields(j) & "</a>"
        if objRS.fields(j)<>"" then 
          Response.Write " <--Tasto destro..Salva oggetto con nome<br>"
        else Response.Write "<br>"
        end if
      else
      Response.Write "¬ <b>" & objRS.fields(j).name & "</b> = " & objRS.fields(j) & "<br>"  
      end if
    
  next
    Response.Write "</li></div>"  
  'objRS.movenext
  'loop until Rs.eof
  
  
''Response.Write "<tr><td>" & objRS("Cod") & "</td>" 
''Response.Write "<td>" & objRS("Area") & "</td>" 
'Response.Write("<td>" & objRS("Colore") & "</td></tr>") 
objRS.MoveNext 
end if 
Next
cancella="yes" 
Response.Write "</ol><hr><br>"
'Response.Write ("</table></center>") 
End if 
Response.Write "<blockquote>"
Response.Write "<b>Siamo nella pagina " & page & " di " & objRS.PageCount & "</b><br>"
Response.Write "<P><B>Pagine:</B> " 
npagine=objRS.PageCount
For pag=1 to objRS.PageCount
if pag=page then 
Response.Write "<A style='color:darkgreen' href= 'risultati.asp?page=" &  "&" & "led=submit" & "&" & "cancella=" & cancella & "'>" 
Response.Write "[ -" & pag & "- ]" 
Response.Write "</A>&nbsp; "
else
Response.Write "<A href= 'risultati.asp?page=" & pag & "&" & "led=submit" & "&" & "cancella=" & cancella & "'>" 
Response.Write pag 
Response.Write "</A>&nbsp; "
end if 
Next 
Response.Write "</P>"
Response.Write "</blockquote>" 

objRS.Close 
Set objRS=Nothing 
DBConn.Close 
Set DBConn=Nothing 


Grazie in anticipo
55 messaggi dal 21 giugno 2001
Allora, per pigrizia non ho neanche guardato il tuo listato, però credo che dovresti assegnare ai numeretti di pagina il valore del request che hai effettuato all'inizio, es:
href=nome.asp?nome=<%=nome%>
così facendo al nuovo request il valore della var non viene perso.
Mi sono un pò confuso cmq credo sia questo, scusa per la spiegazione poco chiara ma questa mattina non ci sono.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.