ASPチュートリアル

ASPホーム

WPチュートリアル

Webページの紹介 WebPages Razor Webページのレイアウト Webページフォルダ WebPages Global Webページフォーム Webページオブジェクト Webページファイル Webページデータベース Webページヘルパー WebPages WebGrid Webページチャート Webページの電子メール Webページのセキュリティ Webページの公開 Webページの例 Webページクラス

ASP.NET Razor

かみそりのイントロ かみそりの構文 Razor C#変数 Razor C#ループ Razor C#ロジック RazorVB変数 かみそりVBループ RazorVBロジック

ASPクラシック

ASPイントロ ASP構文 ASP変数 ASP手順 ASP条件文 ASPループ ASPフォーム ASPCookie ASPセッション ASPアプリケーション ASP #include ASP Global.asa ASP AJAX ASPメール ASPの例

ASPリファレンス

ASPVB関数 ASPVBキーワード ASP応答 ASPリクエスト ASPアプリケーション ASPセッション ASPサーバー ASPエラー ASPファイルシステム ASP TextStream ASPドライブ ASPファイル ASPフォルダー ASP辞書 ASP AdRotator ASP BrowserCap ASPコンテンツリンク ASPコンテンツローテーター ASPクイック参照

ADOチュートリアル

ADOイントロ ADOコネクト ADOレコードセット ADOディスプレイ ADOクエリ ADOソート ADO追加 ADOアップデート ADO削除 ADO Demo ADOスピードアップ

ADOオブジェクト

ADOコマンド ADO接続 ADOエラー ADOフィールド ADOパラメータ ADOプロパティ ADOレコード ADOレコードセット ADOストリーム ADOデータ型

GetString()でADOの速度を上げる


GetString()メソッドを使用して、(複数のResponse.Writeを使用する代わりに)ASPスクリプトを高速化します。


複数のResponse.Writeの

次の例は、データベースクエリをHTMLテーブルに表示する1つの方法を示しています。

<html>
<body>

<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"

set rs = Server.CreateObject("ADODB.recordset")
rs.Open "SELECT Companyname, Contactname FROM Customers", conn
%>

<table border="1" width="100%">
<%do until rs.EOF%>
  <tr>
    <td><%Response.Write(rs.fields("Companyname"))%></td>
    <td><%Response.Write(rs.fields("Contactname"))%></td>
  </tr>
<%rs.MoveNext
loop%>
</table>

<%
rs.close
conn.close
set rs = Nothing
set conn = Nothing
%>

</body>
</html>

大規模なクエリの場合、多くのResponse.Writeコマンドをサーバーで処理する必要があるため、スクリプトの処理時間が遅くなる可能性があります。

解決策は、<table>から</ table>までの文字列全体を作成し、それを出力することです-Response.Writeを1回だけ使用します。



GetString()メソッド

GetString()メソッドを使用すると、1つのResponse.Writeのみで文字列を表示できます。また、do ... loopコードとレコードセットがEOFにあるかどうかをチェックする条件付きテストも排除されます。

構文

str = rs.GetString(format,rows,coldel,rowdel,nullexpr)

レコードセットからのデータを使用してHTMLテーブルを作成するには、上記の3つのパラメーターのみを使用する必要があります(すべてのパラメーターはオプションです)。

  • coldel-列区切り文字として使用するHTML
  • rowdel-行区切り文字として使用するHTML
  • nullexpr-列がNULLの場合に使用するHTML

注: GetString()メソッドはADO2.0の機能です。ADO 2.0は、 https://www.microsoft.com/data/download.htmからダウンロードできます。

次の例では、GetString()メソッドを使用して、レコードセットを文字列として保持します。

<html>
<body>

<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"

set rs = Server.CreateObject("ADODB.recordset")
rs.Open "SELECT Companyname, Contactname FROM Customers", conn

str=rs.GetString(,,"</td><td>","</td></tr><tr><td>","&nbsp;")
%>

<table border="1" width="100%">
  <tr>
    <td><%Response.Write(str)%></td>
  </tr>
</table>

<%
rs.close
conn.close
set rs = Nothing
set conn = Nothing
%>
</body>
</html>

上記のstr変数には、SQLSELECTステートメントによって返されるすべての列と行の文字列が含まれています。各列の間にHTML </ td> <td>が表示され、各行の間にHTML </ td> </ tr> <tr> <td>が表示されます。これにより、1つのResponse.Writeだけで必要な正確なHTMLが生成されます。