Leggere dati catalogo

di il
8 risposte

Leggere dati catalogo

Buongiorno a tutti. Sto cercando se esiste un metodo per leggere da ASP il catalogo di ACCESS. 

Mi servirebbe poter reperire l'elenco delle colonne di una tabella per poter creare uno statement SQL dinamico in base a regole. In parole povere dovrei poter aggiornare colonne differenti di una tabella in base alla natura della richiesta.

Grazie

8 Risposte

  • Re: Leggere dati catalogo

    Ma tu non conosci le colonne della tabella che ti jnyetessa? Le colonne della tabella vengono variate (cancellate, aggiuhte)? 

    Comunque puoi usare ADOX.Catalog

  • Re: Leggere dati catalogo

    Sì conosco le colonne, ma ho una tabella guida che in base a certe condizioni mi dice quali colonne aggiornare definite come SI/NO. Le colonne con gli stessi nomi sono presenti nella tabella da aggiornare.

  • Re: Leggere dati catalogo

    Ma dalla tabella guida i nomi delle colonne da aggiornare le leggi come dari di un record?

    Non si capusce molto. Facci capire con un esempio concreto

  • Re: Leggere dati catalogo

    Vediamo se riesco a spiegarmi: 

    questa è la tabella da aggiornare:

    In pratica vorrei leggere la struttura della tabella guida estraendo solo le colonne "SI" in base al tipo di record e recuperare il nome della colonna corrispondente da utilizzare per la query di update senza fare una fila di IF. é solo un esempio; in pratica le colonne sono almeno una decina.

    Mentre lo scrivo mi vengono dubbi sulla fattibilità ... ma ci provo lo stesso.

    Grazie.

  • Re: Leggere dati catalogo

    Quindi nella tabella guida sai come si chiamano le colonne come sai che ID si chiama ID

    Quando hai letto il singolo record conosci la posizione del campo e quindi deduci il nome colonna.

  • Re: Leggere dati catalogo

    Sì. Da fuori lo so ma sto cercando di capire come reperire le colonne con "SI" senza doverle scorrere tutte. Poi identificate creo la query di aggiornamento dinamicamente solo per le colonne necessarie.

    In pratica dopo aver letto il record interessato, se ho l'elenco delle colonne dal catalogo posso fare un loop per verificare se la colonna ha il "SI" 

    Ho l'idea in testa ma senza leggere la struttura della tabella posso solo fare una serie di IF con i nomi delle colonne statici ... 

    Un comando simile a DESCRIBE nome_tabella utilizzabile in MySQL ...

    Ricordo che la cosa andrebbe dentro una pagina ASP classic, non direttamente in ACCESS. 

    Stavo guardando ADOX ma mi sembra di aver capito che non sia utilizzabile al di fuori di access ( o forse ho male interpretato).

  • Re: Leggere dati catalogo

    TROVATO!

    Nomi delle colonne:

    • ID
    • Tipo
    • Colonna_Uno
    • Colonna_Due
    • Colonna_Tre
    • Colonna_Quattro

    con queste istruzioni:

    Set objCat = Server.CreateObject("ADODB.Connection")
    strDataBasePath = "DataBase/xx.mdb"
    objCat.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(strDataBasePath)
    
    strsql	=	"SELECT TOP 1 * FROM Tabella_Guida"
    Set objRS = objCat.Execute(strsql)
    
    Response.Write "<p>Nomi delle colonne:</p>"
    Response.Write "<ul>"
    
    For Each objField In objRS.Fields
        Response.Write "<li>" & objField.Name & "</li>"
    Next
    
    Response.Write "</ul>"
    
    objRS.Close
    objCat.Close
    Set objRS = Nothing
    Set objCat = Nothing

    il codice originario indicava TOP 0 ma non va.

  • Re: Leggere dati catalogo

    Sono ancora io ... 

    Ho risolto quasi tutto: Leggo i nomi delle colonne, riesco a recuperare il contenuto delle colonne, ma quando cerco di costruire dinamicamente il codice HTML non riesco a inserire il valore contenuto nel campo costruito nel "value" dell'INPUT.

    Se indico esplicitamente il nome del campo valorizzato funziona, mentre se lo costruisco dinamicamente mi trovo il nome del campo anziché il contenuto.

    questo funziona

                  <input type='text' accesskey='22' name='Materia' id='Materia' tabindex='22'
                 maxlength='10' size='10' value="<%=iSpesa_Materia%>" /><br />
    <input type="text" accesskey="22" name="Materia" id="Materia" tabindex="22" maxlength="10" size="10" value="24,58">
    

    questo no

                    <input type='text' accesskey='<%=iCount%>' name='<%=CampiUT(i)%>' id='<%=CampiUT(i)%>' tabindex='<%=iCount%>' placeholder='Valore'
                    maxlength='10' size='10' value='<%="i" & CampiUT(i)%>' /><br />
    <input type="text" accesskey="22" name="Spesa_Materia" id="Spesa_Materia" tabindex="22" placeholder="Valore" maxlength="10" size="10" value="iSpesa_Materia">
    

    E se provo a stampare il campo ho correttamente il valore previsto:

    iSpesa_Materia: 24,58

    Qualcuno ha idee?

Devi accedere o registrarti per scrivere nel forum
8 risposte