Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Valori in Array presi da un db

    Ciao a tutti,
    la mia esigenza è prendere una serie di CAP presi da un db (relativi ad un utente) e utilizzarli come chiavi di ricerca in un'altra tabella del db.

    Mi spiego! Ho un utente "rob2002" che possiede più residenze e quindi più CAP. Bene ... li voglio prelevare dal db per poi metterli come chiave di ricerca.(volglio vedere se digitando un CAP viene fuori quell'utente)
    Ho visto in giro che bisognerebbe utilizzare gli Array, ma premetto che è la prima volta che li uso pertanto farò qualche casino. (O forse esiste un altro metodo al di fuori degli Array?)

    Quindi ho scritto così:
    codice:
    <%
    
    'Creo l'Ado object
    Set adoCon = Server.CreateObject("ADODB.Connection")
      
    'Apro la connessione
    adoCon.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & server.mappath("database/abc.mdb") & "; Persist Security Info = False"
      
    'Creo un  ADO recordset object
    Set rs = Server.CreateObject("ADODB.Recordset")
    
    session("myUser") = "rob2002"
    strSQL = "SELECT * FROM  CAP  WHERE  C_USERS = '" & session("myUser") & "'"
    rs.Open strSQL, adoCon
    
    '***************** ARRAY *****************************
    ' Dichiara variabili 
    Dim aryCap
    Dim i 
    
    ' Crea un array 
    aryCap = Array(strSQL) 
    
    ' Scorri l'array 
    for i = 0 to Ubound(aryCap) 
    ' Esegui l'azione 
    Response.Write(aryCap(i) & "
    ") 
    next 
    
    Response.Write("
    Indice minimo: " & Lbound(aryCap)) 
    Response.Write("
    Indice massimo: " & Ubound(aryCap)) 
    '*******************************************************
    
    if rs.eof = true then 
    response.Write("Non ci sono  altri CAP da editare") 
    response.End()
    end if    		
    %>
    risultato ... una ciofeca! Mi scrive solo la stringa sql così com'è. E' come se scrivessi
    Response.write(SQL)

    Mi potete aiutare?
    Grazie infinite
    Pochi sanno, molti presumono di sapere.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254
    codice:
    aryCap = rs.getrows()
    il risultatop è un array a due dimensioni, in cui hai una riga per ogni record del recordset, ed una colonna per ogni campo


    codice:
    for i=0 to ubound(aryCap ,2)
        Response.Write(aryCap(0,i) & "
    ")      'stampa il primo campo
    next

  3. #3
    Elfa grazie anche per la spiegazione tecnica credo che mi dovrò dedicare a questa funzione.
    Ma volevo chiederti un'ultima cosa.
    Come posso prendere il risultato ed inserirli in una Select SQL?

    Grazzzie!
    Pochi sanno, molti presumono di sapere.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254
    Se ho capito bene il problema....
    dopo aver controllato che l'array non sia vuoto

    codice:
    sql="SELECT * FROM tabella WHERE campo='" & aryCap(0,0) & "'"
    for i= 1 to ubound(arycap,2)
        sql=sql & " OR campo='" & aryCap(0,i) & "'"
    next

  5. #5
    Grazie Elfa,
    per integrare il tuo suggerimento mi ci vorrà un pò. Grazie ancora ti faccio sapere se ho problemi. A più tardi.
    Pochi sanno, molti presumono di sapere.

  6. #6
    Cominciano i problemi.
    Mi estrae solo il primo campo e lo visualizza come Array, ma a me servirebbe un campo che ha per nome "C_CAP".
    Come posso fare?
    Pochi sanno, molti presumono di sapere.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254
    fatti stampare a video il contenuto della stringa sql. Cosa contiene?

  8. #8
    Dal tuo esempio mi restituisce solo il campo contenente l'id che si chiama C_ID. Nel tuo esempio non esiste il nome del campo pertanto la funzione è OK ma voglio estrarre una campo che gli indico io.
    Pochi sanno, molti presumono di sapere.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254
    E' chiaro che la devi adattare, io non so i nomi dei tuoi campi.
    Se non so che query stai facendo non posso indovinare l'errore.

  10. #10
    Questa è lo script. Il campo da estrarre si chiama "C_CAP"
    codice:
    <%
    
    'Creo l'Ado object
    Set adoCon = Server.CreateObject("ADODB.Connection")
      
    'Apro la connessione
    adoCon.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & server.mappath("database/abc.mdb") & "; Persist Security Info = False"
      
    'Creo un  ADO recordset object
    Set rs = Server.CreateObject("ADODB.Recordset")
    
    session("myUser") = "rob2002"
    strSQL = "SELECT * FROM  CAP  WHERE  C_USERS = '" & session("myUser") & "'"
    rs.Open strSQL, adoCon
    
    '***************** ARRAY *****************************
    ' Dichiara variabili 
    Dim aryCap
    Dim i 
    
    ' Crea un array 
    aryCap = rs.getrows()
    
    ' Scorri l'array 
    for i=0 to ubound(aryCap ,2)
        Response.Write(aryCap(0,i) & "
    ")      'stampa il primo campo
    next
    dalla select li prendo tutti ma poi gli arrai devono essere solo quelli estratti dal campo C_CAP.
    Al momento l'Array è rappresentato dal primo campo del db che ha per come C_ID.

    Il db è formato da 3 campo: C_ID, C_USERS, C_CAP
    Pochi sanno, molti presumono di sapere.

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.