Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    579

    Getstring + Application

    Sto cercando di memorizzare una matrice a 2 colonne (una per l'id, l'altra per del testo) su un'application... Non riesco... E' possibile fare questa operazione? Vorrei salvare le categorie del mio sito in modo da non doverle rileggere dal db ad ogni pagine...
    Grazie

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    579
    Mi dà diversi errori...
    In particolare non riesco a memorizzare la matrice nell'application (mi dà un errore!) e poi non riesco a trovare il valore massimo della matrice e a stampare dinamicamente l'elenco dei link...

    codice:
    function categorie()
    application.contents.remove("elencocategorie")
    if not isarray(application("elencocategorie")) then
    dim catrs, catsql, prodotcat
    set catrs=Server.CreateObject("ADODB.Recordset")
    catrs.activeconnection=cn
    catsql="SELECT id, nome FROM categorie ORDER BY nome ASC" 
    catrs.Open catsql
    elencocategorie=catrs.getstring(,, "", "", "-null-")
    application.Lock
    application("elencocategorie")=elencocategorie
    application.unlock
    catrs.close
    end if
    for i=0 to ubound(application("elencocategorie"),2)
    prodotcat=application("elencocategorie")(0,i)
    categorie="" & prodotcat& ""
    next
    end function

  4. #4
    che errore ti da? usare due matrici? usare un dictionary?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    579
    Scusa la mia ignoranza, cos'è un dictionary??? :master:

  6. #6
    codice:
    Oggetto Dictionary
    Oggetto in cui sono memorizzate le coppie chiave/voce.
    
    Osservazioni
    L'oggetto Dictionary è l'equivalente di una matrice associativa 
    PERL. Le voci, che possono essere dati di qualsiasi tipo, vengono
     memorizzate nella matrice. A ciascuna voce è associata una chiave 
    univoca che consente di recuperare una voce specifica. Tale voce è in genere un numero intero o una stringa, ma può essere qualsiasi tipo di dati, ad eccezione di una matrice.
    
    Il codice seguente illustra come creare un oggetto Dictionary:
    
    Dim d   ' Crea una variabile
    Set d = CreateObject("Scripting.Dictionary")
    d.Add "a", "Atene"   ' Aggiunge chiavi e voci.
    d.Add "b", "Belgrado"
    d.Add "c", "Cairo"

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    579
    Vi posto il codice. Spero che qualcuno sia in grado di aiutarmi... Ricordo che vorrei salvare l'id e il nome delle categorie del mio sito in una application in modo da non dover aprire il mio database in ogni pagina.

    Mi dà questo errore:

    Tipo non corrispondente: 'Ubound'

    quando c'è scritto "FOR i = 0 TO UBOUND(Application("categorie"), 2 ) ecc..." nella seconda function


    codice:
    'inizializza l'application la prima volta
    function categorie_ini()
    'pulisci l'application
    application.Contents.remove("categorie")
    IF NOT isArray(Application("categorie")) THEN
    'leggi le categorie dal mio database
    dim rscat, sqlcat, prodList
      Set rscat = Server.CreateObject("ADODB.Recordset")
      sqlcat = "SELECT id, nome FROM categorie ORDER BY nome ASC" 
      rscat.Open sqlcat, cn
      if not rscat.eof then
      application.Lock()
      prodList = rscat.getstring()
      Application("categorie") = prodList
      application.unLock()
      end if
      rscat.Close
      set rscat=nothing
    END IF
    end function
    
    'stampa tutte le categorie con i link in una lista puntata
    function categorie_stampa()
    dim i
    FOR i = 0 TO UBOUND(Application("categorie"), 2 )
    categorie_stampa="[*]" & Application("categorie")( 1, i ) & ""
    next
    end function
    Riesco a stampare il primo record con GetRows ma con GetString niente...

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    579
    C'è un modo per sapere quanti records contiene getstring???

  9. #9
    getstring non contiene record ma ti stampa TUTTI i record che il recordset contiene in un unica stringa di testo

    se vuoi un array devi usare getrows()

    in piu

    codice:
    function categorie_stampa()
    dim i,toStamp
    
    if isArray(Application("categorie")) then
    FOR i = 0 TO UBOUND(Application("categorie"), 2 )
    toStamp=toStamp & "[*]" & Application("categorie")( 1, i ) & ""
    next
    end if
    
    categorie_stampa=toStamp 
    end function
    testata e funzionante (almeno sembra)

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    579
    L'ho provato con il getstring e non funziona... Se uso il getrow mi prende solo il primo record invece a me servono tutti...

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.