多くの ASP プログラマは、データベース クエリを実行し、そのクエリ結果を HTML テーブルに表示した経験があります。通常、私たちはこれを行います:
| ここに引用があります: <% '接続/レコードセットの作成 'レコードセットオブジェクトにデータを取り込みます %> <表> <% rs.EOF ではないときに実行します %> <TR> <TD ><%=rs(フィールド1)% ></TD> <TD ><%=rs(Field2)% ></TD> 。 </TR> <% rs.MoveNext ループ %> </テーブル> |
クエリ結果が多数ある場合、すべての出力結果を長い文字列 (from to) に入れると、処理する Response.Write ステートメントが多数になるため、サーバーが ASP スクリプトを解釈するのに時間がかかります。そうすると、サーバーは Response.Write ステートメントを 1 回解釈するだけで済み、処理がはるかに高速になります (これは ADO 2.0 以降でのみ利用できる機能であることに注意してください)。以前のバージョンをまだ使用している場合は、最新バージョンにアップグレードしてください)
GetString メソッドでは、1 つの Response.Write だけを使用してすべての出力を表示できます。これは、Recordset が EOF であるかどうかを判断できる DO... LOOP ループに似ています。
GetString の使用法は次のとおりです (すべてのパラメーターはオプションです)。
String = Recordset.GetString(StringFormat, NumRows, ColumnDelimiter, RowDelimiter, NullExpr)
Recordset の結果から HTML テーブルを生成するには、GetString の 5 つのパラメーターのうち 3 つだけを気にする必要があります。
ColumnDelimiter (レコードセットの列を区切る HTML コード)、RowDelimiter (レコードセットの行を区切る HTML コード)、および NullExpr (現在のレコードが空の場合に生成される HTML コード)。以下の HTML テーブルの生成例でわかるように、各列は... で区切られ、各行は... で区切られています。コード例:
| ここに引用があります: <%@ LANGUAGE=VBSCRIPT %> <% Option Explicit '優れたコーディング手法 'DBへの接続を確立します ディムコン conn = Server.CreateObject(ADODB.Connection) を設定します conn.Open DSN=ノースウィンド; 'レコードセットを作成する ディムル Set rs = Server.CreateObject(ADODB.Recordset) rs.Open SELECT * FROM table1、conn ' 1 つの大きな文字列を保存します ディム strTable strTable = rs.GetString(,,</td><td>,</td></tr><tr><td> 、) %> <HTML> <本体> <表> <TR><TD> <% Response.Write(strTable) %> </TR></TD> </テーブル> </BODY> </HTML> <% '掃除! rs.閉じる Setrs=なし 接続閉じる conn = なしを設定します %> |
strTable 文字列は、SELECT * FROM table1 の結果から生成した HTML テーブルのコードを格納するために使用されます。
HTML テーブルの各列の間には HTML コードがあり、各行の間には HTML コードがあり、GetString メソッドは正しい HTML コードを出力して strTable に保存するため、出力には Response.Write を 1 行だけ必要とします。データセット のすべてのレコード クエリ結果が次の行と列を返すと仮定して、簡単な例を見てみましょう。
| ここに引用があります: 列1 列2 列3 Row1 ボブ・スミス 40 Row1 エド・フランク 43 Row1 スーボイド 42 |
GetString ステートメントによって返される文字列は次のようになります。
| ここに引用があります: ボブ</td ><td >スミス</td ><td >40</td ><td ></td ></tr ><tr >< TD >エド... |
この文字列は長くて乱雑に見えますが、これは望ましい HTML コードです。 (手書きの HTML コードでは、これをその後に置くことに注意してください。これは、書式設定文字列に、これらのテーブルのヘッダーとフッターに必要な文字列が含まれていないためです。)