RecordsetオブジェクトのGetStringメソッドの使い方
RecordsetオブジェクトのGetStringメソッドの使い方を説明します。GetStringメソッドを使用すると、レコードセットの内容を文字列に変換することができますのでHTMLページに表示させるときに便利です。
|
Variant = recordset.GetString( StringFormat, NumRows, ColumnDelimiter, RowDelimiter, NullExpr ) |
Variantには、バリアント型の文字列を返します。StringFormatには、レコードセットを文字列に変換するときの形式を指定します。この引数にadClipString(2)を指定したときのみ、RowDelimiter, ColumnDelimiter, NullExprの引数が有効です。NumRowsには、文字列に変換するレコード数を指定します。この引数を省略したときは、レコードセットのすべてのレコードが変換されます。この引数はオプションです。ColumnDelimiterには、カラムの区切りに使用する文字/コードを指定します。この引数を省略したときは、TABが仮定されます。この引数はオプションです。RowDelimiterには、行の区切りに使用する文字/コードを指定します。この引数を省略したときは、改行(CR)が仮定されます。この引数はオプションです。NullExprには、フィールドがNullのとき置換する文字/コードを指定します。省略したときは、空白と置換されます。この引数はオプションです。
strRecordset = rs.GetString(adClipString)
response.Write strRecordset
|
|
図 RecordsetオブジェクトのGetStringメソッドを利用したサンプル
Access + Webのダウンロードにサンプルが収録されています。ダウンロードの目次を表示させたら、「GetStringメソッドを利用したサンプル」をクリックしてください。Internet Explorerの左側のフレームには、ASPのソースが表示されます。右側のフレームには、実行結果が表示されます。
図の行28-33では、Accessのデータベースado.mdbを接続するための処理を行っています。行28-29では、OLEDBのProviderとData Sourceを設定して変数strConnectionに保存しています。行30-31では、ado.mdbの商品テーブルからすべてのレコードを抽出するSQLを作成して変数strSQLに保存しています。このSQLには、SELECTのフィールド名に、商品コード、商品名、梱包単位が指定されています。また、ORDER BY句が指定されていますのでレコードセットは、商品コード順に並べ替えられます。行33では、ConnectionオブジェクトのOpenメソッドでado.mdbを接続しています。
28: strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" _
29: & "Data Source=" & server.MapPath("webdb/ado.mdb")
30: strSQL = "Select 商品コード,商品名,梱包単位" _
31: & " From 商品 Order by 商品コード;"
32: set cnn = server.CreateObject("adodb.connection")
33: cnn.Open strConnection
行34では、ConnectionオブジェクトのExecuteメソッドにstrSQLを指定して商品テーブルのレコードセットを作成しています。
34: set rs = cnn.Execute(strSQL)
行36, 51では、HTMLの表の開始/終了タグ<table>・・・</table>をブラウザに送信しています。
36: response.Write "<table border='1'>"
・・・
51: response.Write "</table>"
行38-42では、HTMLの<tr>・・・</tr>タグ内に<th>・・・</th>を挿入して表の見出しを送信しています。
38: response.Write "<tr>"
39: response.Write "<th>ID</th>"
40: response.Write "<th>商品名</th>"
41: response.Write "<th>梱包単位</th>"
42: response.Write "</tr>”
行44-49では、レコードセットの内容を文字列に変換してブラウザに送信しています。行44では、<table>の行と列の開始タグ<tr><td>をブラウザに送信しています。行45では、RecordsetオブジェクトのGetStringメソッドでレコードセットの内容を文字列に変換してブラウザに送信しています。引数StringFormatには、adClipStringを指定しています。adClipStirngを指定すると、ColumnDelimiter, RowDelimiter, NullExprの引数が有効になります。引数NumRowsには-1を指定しています。この場合すべてのレコードが変換されます。引数ColumnDelimiterには、<table>の列の終了/開始タグ</td><td>を指定しています。引数RowDelimiterには、<table>の列/行の終了タグ</td></tr>と行/列の開始タグ<tr><td>を指定しています。引数NullExprには、CHR(60)を指定しています。CHR(160)は、レコードのフィールドがNullのとき、置換されるコードです。CHR(160)は、印字されないコードでブラウザに送信すると空白のスペースが確保されます。CHR(32)をブラウザに送信すると空白が無効になります。行49では、<table>の列/行の終了タグ</td></tr>をブラウザに送信しています。
44: response.Write "<tr><td>"
45: response.Write rs.GetString (adClipString,-1,_
46: "</td><td>", _
47: "</td></tr><tr><td>", _
48: chr(160))
49: response.Write "</td></tr>"
定数名adClipStringは、行3のinclude file=で指定しているadovbs.incファイルに定義されています。
3: <!--#include file=adovbs.inc -->
行53では、レコードセットを閉じています。行54では、データベースを切断しています。
53: rs.Close
54: cnn.Close
行55-56では、Recordset, Connectionオブジェクトを解放しています。
55: set rs = nothing
56: set cnn = nothing