Remote Data Services

2 pagine in totale: <<Indietro 1 [2]

Utilizzare il DataControl con i parametri impostati in fase di progettazione.

<html>
<head>
<meta name="VI60_defaultClientScript" content="VBScript">
<meta NAME="GENERATOR" Content="Microsoft FrontPage 3.0">
<title></title>
</head>
<body>
<!-- Ancora più breve il listato che prevede l'utilizzo del DataControl.
L'oggetto RDS.DataControl chiama automaticamente  l'oggetto RDS.DataFactory-->

<table datasrc="#DataControl" datapagesize="10" name="DataTable" id="DataTable"
cellpadding="1" cellspacing="1" border="2" align="center" width="75%">
<THEAD bgcolor="Red" align="center">
<tr>
<td>ID </td>
<td>NOME </td>
<td>COGNOME </td>
</tr>
</THEAD>
<TBODY>
<tr>
<!-- Specifichiamo i valori DATAFLD relativi ai dati che vogliamo visualizzare -->

<td><div datafld="ID"></div></td>
<td><div datafld="Nome"></div></td>
<td><div datafld="Cognome"></div></td>
</tr>
</TBODY>
</table>
<p>

<!-- Aggiungiamo un oggetto DataControl alla pagina Web ed impostiamo i parametri Connect, Server e SQL -->
<object CLASSID="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33" ID="DataControl" width="1"
height="1">
<param name="Connect" value="DSN=Elenco;UID=;PWD=;">
<param name="Server" value="http://localhost">
<param name="SQL" value="Select * from Elenco">
</object>
<br>
<br>
<br>
</p>
<p align="center"><input type="button" value="Indietro" id="Indietro" name="Indietro">&nbsp;&nbsp;&nbsp;&nbsp;
<input type="button" value="Avanti" id="Avanti" name="Avanti"> </p>
</body>
</html>

<!-- Ancora ordinaria amministrazione. Le Sub per la paginazione. -->
<script ID="clientEventHandlersVBS" LANGUAGE="vbscript">
<!--
dim PagCorrente
Sub window_onload
PagCorrente = 1
Call AttivaBottoni
End Sub
Sub Avanti_onclick
PagCorrente = PagCorrente + 1
DataTable.nextPage()
Call AttivaBottoni
End Sub
Sub Indietro_onclick
PagCorrente = PagCorrente - 1
DataTable.previousPage()
Call AttivaBottoni
End Sub
Sub AttivaBottoni
if ( PagCorrente < DataControl.Recordset.PageCount) then
   Avanti.disabled = false
else
   Avanti.disabled = true
end if
if (PagCorrente > 1) then
   Indietro.disabled = false
else
   Indietro.disabled = true
end if
End Sub
-->
</script>

L'estrema semplicità di utilizzo di RDS si riverbera anche nel caso si debbano effettuare degli aggiornamenti della fonte dati a seguito di inserimento, modifica, cancellazione di record dal recordset (ancora presente nella cache del client).
Si incarica di effettuare tutto ciò, il metoto SubmitChanges.
Tale metodo viene tuttavia invocato in maniera diversa nei due casi sopra proposti.
Nel primo esempio si deve assegnare ad una variabile il valore di ritorno del metodo SubmitChanges al quale devono essere passati i parametri relativi al collegamento ed il Recordset:

Dim b
Dim DS
Dim DF
Set DS =createobject("RDS.DataSpace")
Set DF = DS.CreateObject("RDSServer.DataFactory", "http://localhost")
Set RS = DF.Query("DSN=Elenco;UID=;PWD=;", "SELECT * FROM Elenco")
rs("Nome")="Paperino"
Var=DF.SubmitChanges("DSN=Elenco", RS).

Nel secondo esempio, poichè i parametri vengono passati con le proprietà SQL , Connect e Server , il metodo SubmitChanges viene invocato, dopo aver assegnato ad una variabile il, nel nostro esempio, DataControl.Recordset, senza alcun parametro:

Dim RS
set RS=DataControl.Recordset
RS("cognome")="Paolino"
DataControl.SubmitChanges/code>

Conclusioni

Non è stato volutamente  preso in esame il caso di utilizzo di RDS con oggetti ADO, che richiederebbe un po' più di spazio per essere trattato.
Ad oni modo, in quest'ultimo caso, il metodo da invocare è UpdateBatch e non SubmitChanges.

Bisogna dire inoltre che la tecnica degli aggiornamenti batch disconnessi, pur essendo molto utile e funzionale, deve tuttavia essere utilizzata con molta cautela.
E' possibile infatti che le modifiche apportate da un client possano avere come oggetto record nel frattempo già modificati da un altro client. In questo caso l'aggiornamento genererà un errore dovuto ad un conflitto di aggiornamento .
E' necessario pertanto prestare molta attenzione e prevedere questa possibilità gestendo l'eventuale errore.

Per concludere, ritengo che RDS, presentando indubbi vantaggi di risparmio di risorse, possa essere di grande aiuto in una intranet dove è possibile anzi consigliabile utilizzare un solo browser. Per i motivi opposti, risulta sicuramente meno utile su Internet, dove per forza di cosa è necessario garantire il supporto per quanti più browser web sia possibile.

2 pagine in totale: <<Indietro 1 [2]

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.


TUTORIALS
TOP TEN ARTICOLI
NOTIFICHE

Iscriviti alla nostra newsletter nuoviarticoli per ricevere e-mail le notifiche!

Indirizzo e-mail:
PROVIDER ASP.NET 2.0

Seleziona il database per avere il web.config pronto per Membership, Roles e Profile API.



IN EVIDENZA
MISC