30 messaggi dal 08 febbraio 2006
Ciao a Tutti:

ecco il mio codice, semplicissimo:

<%    
      Dim DBConn, Stringa1, mazz
      Dim Arr(1500,5)
      
      sub ConnessioneDB
        Set DBConn = Server.CreateObject("ADODB.connection")
        DBConn.Open "CAZZI MIEI"
      end sub
      
      sub DisconnessioneDB
        DBConn.Close
      end sub

      Stringa1 = "SELECT var1,var2,var3,var4,var5 FROM tab1"
      
      ConnessioneDB
      set mazz = DBConn.Execute(Stringa1)

      i = 0
    
      Do While Not mazz.eof
            
        Arr(i,0) = mazz.Fields("var1")
        Arr(i,1) = mazz.Fields("var2")
        If len(mazz.Fields("var3"))>0 Then
          Arr(i,2) = mazz.Fields("var3")
        Else
          Arr(i,2) = " "
        End If
        If len(mazz.Fields("var4"))>0 Then
          Arr(i,3) = mazz.Fields("var4")
        Else
          Arr(i,3) = " "
        End If
        Arr(i,4) = mazz.Fields("var5")
      
        i = i + 1
        
    '    On Error Resume Next 
        
        mazz.movenext()
      Loop
            
      mazz.Close
      Set mazz = Nothing
      DisconnessioneDB
      
      
%>
      <table border="1" bordercolor="#FFFFFF" cellpadding="4" cellspacing="4"><%
      for jj=0 to i
        %><tr><%
        for kk=0 to 4
          %><td bordercolor="#000000"><%
          Response.Write(Arr(jj,kk))
          %></td><%
        next
        %></tr><%
      next
%>
      </table>
      
      <%Response.Write("<br>" & i)%>


IL MESSAGGIO DI ERRORE CHE MI RESTITUISCE, se non uso il comando "On Error Resume Next", è questo:

Tipo di errore:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Lotus][ODBC Lotus Notes]Invalid date value
mia_pagina.asp, line 41


dove la riga 41 contiene solo mazz.MoveNext()....
Se invece utilizzo "On Error Resume Next", la pagina gira, ma a fronte di circa 700 record presenti in tab1, ne trova 200 e ne conta (con la variabile "i") 318



!?!?!?!?!?!?!?!?

HELP PLEASE
ASAP

A.
62 messaggi dal 14 febbraio 2001
www.frisullo.it
On Error Resume Next

fa continuare l'elaborazione del codice nonostante il verificarsi di un errore.
Nel tuo caso fa uscire dal ciclo while...ecco perchè non "torna" il numero di cicli con le somme di risposte... questo per quanto riguarda una parte delle tue domande..

per l'errore alla riga 41, molto probabilmente almeno uno dei campi che elabori è un campo "datatime"... e probabilmente uno dei valori del campo non è un "datetime"..

o magari è sbagliato il nome della connessione


Ciao

Lucio
30 messaggi dal 08 febbraio 2006
Innanzi tutto grazie per la risposta...

Dunque, il nome della connessione non può essere sbagliato, perchè lo uso in una cinquantina di altre pagine, senza problemi, e con ottimi risultati di estrazione...

Per quanto riguarda i campi datetime (cioè var3), al più questi possono essere vuoti, ma non sballati sul tipo di dato in entrata; sull'eventualità che siano vuoti, come vedi, ho inserito un semplicissimo controllo condizionale.

Eppoi, anche se fossero di tipo sbagliato, come vedi non compio nessuna operazione sui campi data, li memorizzo in un array bidimensionale, e cerco di farglieli stampare a monitor....

mah.....

ALTRI SUGGERIMENTI?

Grazie
A.
635 messaggi dal 06 settembre 2002
Ciao, prova a modificare il codice come segue:
<% 
Dim DBConn, Stringa1, mazz 
'Dim Arr(1500,5) 

sub ConnessioneDB 
Set DBConn = Server.CreateObject("ADODB.connection") 
DBConn.Open "CAZZI MIEI" 
end sub 

sub DisconnessioneDB 
DBConn.Close 
end sub 

Stringa1 = "SELECT var1,var2,var3,var4,var5 FROM tab1" 

ConnessioneDB 
Set rs=Server.CreateObject("ADODB.RecordSet")
rs.Open Stringa1, DBConn,3,3
  Arr=rs.GetRows  'Restituisce in automatico un array dal recordset
rs.Close
set rs=Nothing

DisconnessioneDB
%>


a questo punto, per utilizzare i dati puoi
if isArray(Arr) then
  TOT_ROW=UBound(Arr,2)
  TOT_COL=UBound(Arr,1)
  %>
  <table border="1" bordercolor="#FFFFFF" cellpadding="4" cellspacing="4">
  <% 
  for I_ROW=0 to TOT_ROW
    %><tr><% 
    for I_COL=0 to TOT_COL 
      %><td bordercolor="#000000"><% 
      Response.Write(Arr(I_COL,I_ROW)) 
      %></td><% 
    next 
    %></tr><% 
  next 
  %> 
  </table> 
  <%
  Response.Write("<br>" & TOT_ROW)
else
  'Visualizzi un messaggio di nessun record trovato
end if  'di if isArray(Arr)

Modificato da ojd il 03 ottobre 2006 18.31 -

OJD

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.