Visualizzazione dei risultati da 1 a 8 su 8

Discussione: record in variabile

  1. #1

    record in variabile

    Ciao a tutti, ho un problema, credo stupidissimo, ma nn riesco a venirne a capo. Credo si risolva con l'ulitizzo degli array, ma nn li ho mai usati, quindi vi chiedo un aiuto.

    Estraggo dei records da un db e vorrei inserirli in una variabile che utilizzerei in una pagina successiva, il numero dei record varia a seconda della scelta fatta dall'utente attraverso il form. Questo è il codice relativo all'estrazione...

    .
    .
    StrConn = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " &_
    Server.MapPath("../mdb-database/email_newsletter.mdb")
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open StrConn
    .
    .
    SQL_clienti = " SELECT * FROM email WHERE gruppo = '"&clienti&"' "
    SQL_fornitori = " SELECT * FROM email WHERE gruppo = '"&fornitori&"' "
    .
    .
    Set Rs_clienti = Server.CreateObject("ADODB.RecordSet")
    Rs_clienti.Open SQL_clienti, Conn, 3, 3
    Do While NOT Rs_clienti.EOF
    gruppo_clienti = (Rs_clienti("email") & "#")
    Response.Write(gruppo_clienti)
    Loop

    Set Rs_fornitori = Server.CreateObject("ADODB.RecordSet")
    Rs_fornitori.Open SQL_fornitori, Conn, 3, 3
    Do While NOT Rs_fornitori.EOF
    gruppo_fornitori = (Rs_fornitori("email") & "#")
    Response.Write(gruppo_fornitori)
    Loop
    .
    .
    gruppi_selezionati = (gruppo_clienti & gruppo_fornitori)
    gruppi_selezionati = (left(gruppi_selezionati,len(gruppi_selezionati)-1))
    .
    .

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254
    Usa getrows() per memorizzare i dati estratti in un array.

  3. #3
    ok, adesso provo e poi ti dico...

    grazie!

  4. #4
    ho provato a cercare info su getrows, ma sto facendo confusione....
    non riesco a "piazzare" tutti i records in fila nella mia variabile. Dovrebbe essere così:

    variabile = (dato1#dato2#dato3#dato........fino all'ultimo record)

    la sintassi di GetRows è chiara:

    variabile = miorecordset.GetRows()

    ma mi sfugge evidentemente qualcosa.....lo so che deve essere una sciocchezza..però vi chiedo un cortese aiuto....intanto cerco ancora..

    grazie!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254
    con
    codice:
    variabile = miorecordset.GetRows()
    crei un array a due dimensioni, una riga per ciascu record ed una colonna per ciascun campo del recordset.
    Se veramente i dati ti servono tutti in fila
    variabile = (dato1#dato2#dato3#dato........fino all'ultimo record)
    supponendo, come sembra dal tuo esempio, che ogni record contenga un solo campo, devi costruirtela con un ciclo tipo
    codice:
    variabile_in_fila=variabile(0,0)
    for i=1 to ubound(variabile,2)    'il limite max delle righe
        variabile_in_fila=variabile_in_fila & "#" & variabile(0,i)
    next
    in generale con variabile(i,j) leggi il campo i del record j

  6. #6
    grazie elfa, ora provo....

  7. #7
    Allora, sintetizzo: a seconda della scelta dell'utente attraverso dei checkbox (clienti, fornitori...) devo creare un array in questo f.to:

    dato1#dato2#dato3#.....

    dove dato1 ecc...sono i record provenienti dal mio db e che possono essere appunto proveniente dal gruppo clienti e/o fornitori. il problema è che nn riesco, nonostante i vs preziosi aiuti, a inserire nella variabile tutti i records selezionati dalla mia select. Posto il codice, magari si capisce meglio....

    clienti = TRIM(Request("clienti"))
    fornitori = TRIM(Request("fornitori"))

    'apro la connessione con il db
    StrConn = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " &_
    Server.MapPath("../mdb-database/email_newsletter.mdb")
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open StrConn

    'seleziono i records
    SQL_clienti = " SELECT email FROM email WHERE gruppo = '"&clienti&"' "
    SQL_fornitori = " SELECT email FROM email WHERE gruppo = '"&fornitori&"' "

    'apro il RecordSet
    Set Rs_clienti = Server.CreateObject("ADODB.RecordSet")
    Rs_clienti.Open SQL_clienti, Conn, 3, 3
    Set Rs_fornitori = Server.CreateObject("ADODB.RecordSet")
    Rs_fornitori.Open SQL_fornitori, Conn, 3, 3

    bufferdata_clienti = Rs_clienti.GetRows
    numrows_1 = ubound(bufferdata_clienti, 2)
    For rcounter_1 = 0 To numrows_1
    gruppo_clienti = (bufferdata_clienti(0, rcounter_1) & "#")
    next

    bufferdata_fornitori = Rs_fornitori.GetRows
    numrows_2 = ubound(bufferdata_fornitori, 2)
    For rcounter_2 = 0 To numrows_2
    gruppo_fornitori = (bufferdata_fornitori(0, rcounter_2) & "#")
    next

    gruppi_selezionati = (gruppo_clienti & gruppo_fornitori)
    Response.Write(gruppi_selezionati)

    Rs_clienti.Close
    Rs_fornitori.Close
    Conn.Close

    Quando stampo a video la variabile gruppi_selezionati, mi visualizza solamente il primo record di ogni gruppo....(il primo record di clienti e il primo di fornitori..)

    Non ci capisco più na mazza....

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254
    strano che non ti visualizzi solo l'ultimo, per chè tu ad ogni iterazione del ciclo sovrascrivi la variabile
    gruppo_clienti = (bufferdata_clienti(0, rcounter_1) & "#")
    nel mio esempio invece c'era
    variabile_in_fila=variabile_in_fila & "#" & variabile(0,i)

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.