2 pagine in totale: <<Indietro 1 [2]
Accesso ai recordset CHILD
Osservando l'esempio del precedente paragrafo, recuperare informazioni sul PARENT di una relazione è semplice come usare un recordset ADO, ma come recuperare i dati contenuti nelle relazioni CHILD ?
Fortunatamente è più semplice che apprendere la sintassi di Data Shaping; è necessario creare un nuovo recordset ed assegnare a quest'ultimo la proprietà VALUE del campo CHILD.
Facendo riferimento al nostro esempio, per accedere ai dati del recordset CHILD con alias DETTAGLI, dovremmo usare:
set rsDettagli=rsDS("DETTAGLI").valuedove
rsDettaglirsDSNel paragrafo successivo useremo questa tecnica per la costruzione di una tabella immagine del recordset gerarchico.
Osserveremo in questo paragrafo come utilizzare i recordset gerarchici nalle pagine ASP, servendoci naturalmente di ADO. Con semplici modifiche è possibile utilizzare lo stesso codice per applicazioni Visual Basic.
Nei file allegati troverete il file MS Access 97 denominato " DATASHAPE.MDB ", con il quale eseguire le vostre prove, nonché la pagina ASP " SHAPE.ASP " di seguito illustrata.
La sequenza delle operazioni necessarie è la seguente:
- Creazione di un Recordset ADO
- Creazione della stringa di connessione con Provider e Data Provider
- Esecuzione della query Data Shape
- Recupero dei dati CHILD
Ecco il codice completo per la creazione di una tabella virtualmente "gerarchica":
<%
response.buffer=true
response.expires=0
Dim rsOrdini
Dim rsArticoli
start=timer
'Creazione recordset PARENT Ordini
set rsOrdini=server.createobject("adodb.recordset")
'Percorso del database
dbPath=server.mappath("datashape.mdb")
'Stringa di connessione al Provider e Data Provider
rsOrdini.activeconnection="Provider=MSDataShape;Data Provider=Microsoft.Jet.Oledb.3.51;data source=" & dbPath
sqlShape="SHAPE {SELECT CODICE FROM ORDINI} AS ORDINI " & _
"APPEND ({SELECT ID_ORDINE,DESCRIZIONE,QTA,PREZZO " & _
"FROM DETTAGLIO_ORDINI} AS DETTAGLI " & _
"RELATE CODICE TO ID_ORDINE)"
'Apertura del Recordset Gerarchico
rsOrdini.open sqlShape
%>
<TABLE WIDTH=600 BORDER=1 cellspacing=0 cellpadding=0>
<TR>
<TD>ORDINE</TD><TD>DESCRIZIONE</TD><TD>QTA</TD><TD>PREZZO</TD>
</TR>
<%
with rsOrdini
'Loop fino alla fine degli ordini
while not .eof
'Intestazione nuovo ordine
TR_Parent="<TR><TD>" & .fields(0) & "</TD><TD COLSPAN=3 ALIGN=CENTER><B>DATI CHILD</B></TD></TR>" & chr(13)
'Creo il RS per il recupero dei dettagli
set rsDettagli=.fields("DETTAGLI").value
with rsDettagli
while not .eof
'Righe di dettagli per l'ordine corrente
TR_Children="<TR><TD> </TD><TD>" & .fields(1) & "</TD><TD>"
& .fields(2) & "</TD><TD>" & formatcurrency(.fields(3)) & "</TD></TR>"
response.write TR_Children
.movenext
wend
end with
response.write TR_Parent
TR_Children=""
.movenext
wend
end with
rsOrdini.close
set rsOrdini=nothing
%>
</TABLE><BR><BR>
Tempo di esecuzione: <%=timer-start%>Benefici e costi di Data Shape
Naturalmente è lecito chiedersi quali siano i vantaggi del Data Shaping e quali i costi per ottenerli.
I recordset gerarchici hanno un basso impatto sulla rete, specialmente quando usati su DB Client/Server (Sql Server, Oracle, Sybase, ecc.), per i motivi che abbiamo illustrato nei precedenti paragrafi. Nonostante ciò, essendo necessario effettuare il fetching (recupero) dei record su base tabella, inevitabilmente viene introdotto un certo ritardo rispetto alle semplici " SELECT?JOIN ".
Ritengo comunque che il vero vantaggio di tale tecnica sia da ricercare nel nuovo concetto di dati strutturati secondo legami flessibili e potenti, che fornisce all'utente la libertà di concepire i risultati come " orientati alla realtà ".
2 pagine in totale: <<Indietro 1 [2]
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
- Galleria fotografica dinamica con ASP.NET AJAX
- Usare Search come un servizio nei tuoi siti e nei tuoi client
- Mappe nel tuo sito con Virtual Earth
- Integrare Windows Live ID, Contacts e Presence API nelle tue applicazioni
- Introduzione ai cloud based service con Windows Live Services
- Realizzare un custom extender AJAX con ASP.NET 3.5
- Tracciare le modifiche ai dati e allineare i datawarehouse con il Change Data Capture in SQL Server 2008
- Le nuove caratteristiche di IIS 7.0 per sviluppatori e sistemisti
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.






Difficoltà
Stampa
Download


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!