ホーム > X-Plus > XML Square >  デベロッパーズコーナー  >  XMLとデータベース

この記事を送る はてなブックマークに追加する BuzzurlにブックマークBuzzurlにブックマーク Yahoo!ブックマークに登録
テキストリンクコードを取得する

デベロッパーズコーナー:XMLとデータベース I(7)

2002年01月01日作成 

XMLとデータベース
ADO、ASPとの連携について
(株)日本ユニテック
竹内 理


目次<全10ページ>

2.準備
7.STEP5:ADOとDOMの連携
    おわりに



STEP5:ADOとDOMの連携

最初の方で述べたように、レコードセットをIStreamインターフェースを実装するほかのオブジェクトに永続化することもできます。また、それらのオブジェクトに永続化したレコードセットを使ってRecordsetオブジェクトを開くこともできます。

XMLパーサであるMSXMLのDOMDocumentオブジェクトなどもそのようなオブジェクトのひとつです。DOMとの連携を行う際、Recordsetオブジェクトの内容を直接DOMに渡すことはさまざまな利点があります。例えば、一度Recordsetの内容をハードディスクに書き出し、それをDOMで読み込むというような処理をせずにすみます。このことにより、処理速度やセキュリティの問題を回避することができます。

では、ADOとDOM(MSXML)の連携を示す以下のSample4.aspを実行してみましょう。ここではMSXML3を使用しています。

<%@ language="VBscript" %>
<object id="rs" progid="ADODB.Recordset" runat="Server"></object>
<object id="rs2" progid="ADODB.Recordset" runat="Server"></object>
<object id="domDoc" progid="MSXML2.FreeThreadedDOMDocument" runat="Server"></object>
<%
       Option Explicit
       Response.Buffer = true

       Dim strSQL,strConn,strStm,ndlt

       Response.ContentType="text/html"
       Response.Expires= 0
       Response.Buffer = false

       strSQL = "select * from person"
       strConn = "DSN=adotest;UID=;PWD=;DATABASE="
       rs.Open strSQL,strConn    '①データベースからデータを取得

       rs.Save domDoc,1    '②レコードセットをDOMオブジェクトに永続化
       rs.Close

       set ndlt = domDoc.getElementsByTagName("z:row")    '③DOMを使ってレコードを取得
%>
<HTML><BODY>
<P><%= ndlt.Item(0).getAttribute("Name") %></P>
<P><%= ndlt.Item(0).getAttribute("Age") %></P>
</BODY></HTML>
<%
       rs2.Open domDoc    '④DOMオブジェクトからRecordsetオブジェクトを開く
%>
<リスト6. Sample5.asp>

ではこのソースを詳しく見ていきましょう。①でデータベースからデータを取得します。②ではレコードセットをDOMオブジェクトに永続化します。Recordset.Saveメソッドの引数にDOMオブジェクトをセットしています。③以降ではDOMのメソッドを使用してデータを取得し、表示します。STEP3で見たように、xml形式に永続化されたレコードセットでは実際のデータはz:rowに格納されています。そして④ではRecordset.Openメソッドを使用してDOMオブジェクトからRecordsetオブジェクトを再度開いています。

このソースを実行すると、Personテーブルの一番目のレコードの値「C.Mansfield」「22」が表示されます。

このようにADOとDOMの連携を非常に簡単なコーディングで実現することができます。



この記事と関連の高い記事

関連キーワード:ADO


関連キーワード:ASP


関連キーワード:DOM


関連キーワード:データベース




ページトップへ戻る