Accedere con ASP.NET ad un documento XML creato dall'oggetto recordset di ADO e ASP

di Daniele Bochicchio, in ASP.NET, ADO.NET, DataBinding,

Creare web service con ASP non è facilissimo, se paragonato a quello che bisogna fare per raggiungere lo stesso scopo con ASP.NET.
Non è raro invece che si debba accedere ad alcuni dati presenti su un sito su cui il supporto ASP.NET non sia presente.
In casi come questo è possibile emulare un web service utilizzando la particolarità dell'oggetto recordset di ADO di poter esportare i dati in formati XML attraverso il metodo Save.

Ecco il file ASP:

<!--METADATA Type="typelib" uuid="{00000205-0000-0010-8000-00AA006D2EA4}"--><%

' content type
response.ContentType = "text/xml"

' connessione
strConn = "Provider = SQLOLEDB.1; Data Source = localhost; User ID = sa; Password ="
 set conn = Server.CreateObject("ADODB.Connection")
 conn.Open strconn
 
set rs = Server.CreateOBject("ADODB.Recordset")
rs.Open "SELECT TOP 10 * FROM faq", conn, 1, 3
rs.Save Response, adPersistXML
 
 ' libero risorse
 rs.Close
 Set rs = Nothing
 conn.Close
 set conn = Nothing

%>

Supponendo di aver chiamato questo script ASP provider.asp, ci basterà utilizzare uno script come il seguente per recuperare i dati e visualizzarli in un datagrid:
Ed ecco lo script ASP.NET:

[code lang="aspx"]<%@ Import Namespace="System.Data"%>
<SCRIPT language="VB" runat="server"> 
     Sub Page_Load(sender As Object, E As EventArgs)

        Dim strURL as String = "http://localhost/provider.asp"

        ' inserisco il file XML nel dataset
         Dim ds As New DataSet
         ds.ReadXml(strURL)

         ' quale "tabella" prendere?
        queryres.DataSource = new DataView(ds.Tables(1))

         ' effetto il databinding sul datagrid
         queryres.DataBind()
     End Sub
</script>
 <ASP:DataGrid id="queryres" runat="server"
     BackColor="white"
     Headerstyle-BackColor="lightsteelblue"
     Headerstyle-Font-Style="bold"
 />

Ovviamente questo workaround va benissimo per "web service" testuali, che espongano solo contenuti, mentre diventa più macchinoso da implementare nel caso in cui il web service debba avere una propria logica interna.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi