Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente bannato
    Registrato dal
    Jan 2003
    Messaggi
    2,407

    domanda banale su array

    salve ragazzi,

    se io volessi caricare in un array delle variabili di tipo stringa provenienti da un db

    che dovrei fare?

    dim array(100)

    i = i+1
    array[i] = myrs("varuiabile")

    il tutto dentro ad un ciclo che controlli che il db non sia finito o all'inizio giusto?

    o sto sbagliando qualcosa


    Grazie

  2. #2
    Utente di HTML.it L'avatar di sanny82
    Registrato dal
    Mar 2003
    Messaggi
    689
    Ti dà errore giusto?

    Il problema che un array è un cassetto di memoria che al suo interno un numero preciso di record...

    Ad es:
    se imposti un array(100) al suo interno devi inserire 100 record altrimenti ti dà errore...

    Prova a fare così...

    codice:
    Dim Array()
    		
    iUB = rsTuo.recordcount
    Redim Array(iUB)
    così assegni al tuo array il numero di record da contenere e dopo nel ciclo inizi a inserire i record...
    una parola è poca e due sono troppe

  3. #3
    Utente bannato
    Registrato dal
    Jan 2003
    Messaggi
    2,407
    Originariamente inviato da sanny82
    Ti dà errore giusto?

    Il problema che un array è un cassetto di memoria che al suo interno un numero preciso di record...

    Ad es:
    se imposti un array(100) al suo interno devi inserire 100 record altrimenti ti dà errore...

    Prova a fare così...

    codice:
    Dim Array()
    		
    iUB = rsTuo.recordcount
    Redim Array(iUB)
    così assegni al tuo array il numero di record da contenere e dopo nel ciclo inizi a inserire i record...
    no a dire il vero non mi dava errore era solo una conferma... dell'esattezza della struttura... comunque credo di aver risolto...

    a questo punto vi chiedo soltanto un favore...
    mi controllereste il codice per eventuali bugs o soluzioni che ottimizzino ulteriormente il codice...

    codice:
    <%
    'determino il banner che andrà visualizzato affianco al titolo
    If (Session("Nomebanner")="") and (Session("LinkBanner")="") Then
    
    	ContaId=0
    	NumeroBanner=0
    	Session("Nomebanner")=""
    	Session("LinkBanner")=""
    	dim ArrayBanner(100)
    	dim ArrayLink(100)
    	
    	'apro la connessione con il db
    	set myConn1 = server.CreateObject("ADODB.Connection")
    	dim strConnDb1
    	strConnDb1 = ""
    	strConnDb1 = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " & server.mappath("/mdb-database/testisito.mdb")
    	myConn1.Open(strConnDb1)
    			
    	mySqlSelect1 = "select * from banner"
    	set myRSComS1 = server.CreateObject("ADODB.Recordset")
    	myRSComS1.Open mySqlSelect1, myConn1
    	
    	if not(myRSComS1.EOF) and not(myRSComS1.BOF) then
    		do while not(myRSComS1.EOF)	
    		  ContaId = ContaId + 1
    		  ArrayBanner(ContaId) = myRSComS1("nomebanner")
    		  ArrayLink(ContaId) = myRSComS1("link")
    		  myRSComS1.MoveNext
    		loop	  
    	end if
    	
    	randomize
    	NumeroBanner = int((ContaId * Rnd) + 1)
    	Session("NomeBanner") = ArrayBanner(NumeroBanner)
    	Session("LinkBanner") = ArrayLink(NumeroBanner) 
    	
    	myRSComS1.Close
    	set myRSComS1 = nothing	
    	myConn1.Close
    	set myConn1 = nothing	
    
    Else
    End if
    
    response.write(NumeroBanner)
    response.write(Session("NomeBanner"))
    response.write(Session("LinkBanner"))
    response.end()
    
    %>
    grazie

  4. #4
    Utente di HTML.it L'avatar di sanny82
    Registrato dal
    Mar 2003
    Messaggi
    689
    Direi che il codice sembra pulito, anche se io rimuoverei quei Dim che creano solo casini a volte...
    una parola è poca e due sono troppe

  5. #5
    Utente bannato
    Registrato dal
    Jan 2003
    Messaggi
    2,407
    in che senso rimuovo i dim... sarà che coi vettori ho un brutto rapporto ma i vettori non sono sempre variabili che vanno dichiarate e quindi... dim nomeaaary(dimensione massima) ?

    posso sempre sbagliarmi...

  6. #6
    Utente di HTML.it L'avatar di sanny82
    Registrato dal
    Mar 2003
    Messaggi
    689
    no, per gli array va bene...

    io eliminerei questo: dim strConnDb1
    una parola è poca e due sono troppe

  7. #7
    Utente bannato
    Registrato dal
    Jan 2003
    Messaggi
    2,407
    ah ok no problem come già fatto...


    ciao e grazie

  8. #8
    Originariamente inviato da sanny82
    Direi che il codice sembra pulito, anche se io rimuoverei quei Dim che creano solo casini a volte...
    VVoVe:
    a dire il vero i casini è più facile che vengano fuori quando le variabili non vengono dichiarate, anzi l'ideale sarebbe lavorare in option explicit
    xxx

  9. #9
    in questi casi è indicato l'utilizzo di getrows, è molto più veloce

    if not(myRSComS1.EOF) and not(myRSComS1.BOF) then
    arrayDati=myRSComS1.getrows()
    end if

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.