SAK 図書館
ASP VB Script 基礎編 (その一) 言語構造、注釈、変数、演算子
Active Server Pages(ASP) - VB Script の基礎を簡単に説明していきます。
ASP の拡張子は .asp となります。
■ASP VB Script 開始記述
<%@ Language=VBScript %>
・この一行が先頭に必ず必要です。
■言語コード開始、終了記述
<% 言語コード開始
%> 言語コード終了
・<% ... %> 間に VB コードを記述します。
・これ意外の場所には、HTML がそのまま記述できます。
・変数や関数の埋め込みにも使用します。
【使用例】
<%@ Language=VBScript %>
<%
'=======================================================================
' サンプル ASP
'=======================================================================
dim a
a = 2 * 10
%>
<HTML>
<HEAD>
</HEAD>
<BODY>
<P>テストデータ <% = a %> を表示</P>
</BODY>
</HTML>
■注釈
' 『'』以降注釈となる
■変数タイプ
・変数 variant 宣言しかできない。
・つまり、数値にも文字にも使用可能な変数となる。
・変数宣言を強要するには、Option Explicit を最初に記述する。
<%@ Language=VBScript %>
<%
Option Explicit
...
%>
■特殊変数タイプ
application("変数名")
・サイトサービス単位に情報を格納します。
(アプリケーション変数、アプリケーション共有変数)
・ファイルシステムオブジェクト変数などに使用すると効果的です。
(IIS5 では、ファイルシステムオブジェクトを application("変数名") に
セットできないので session("変数名") を使用すると良い。)
session("変数名")
・ユーザの接続セッション単位に情報を格納します。
(セッション変数、セッション共有変数)
・ブラウザが完全に終了すると破棄されます。
・ユーザ単位の継続変数などに使用すると効果的です。
【使用例】
'** ファイルシステムオブジェクトを保持
if isempty(session("s3fs")) then
application.lock
Set session("s3fs") = Server.CreateObject("Scripting.FileSystemObject")
application.unlock
end if
'** VB6 DLL オブジェクトをセッションで保持
if isempty(session("s3w")) then
set session("s3w") = Server.CreateObject("sak3web.Sak3WebCls")
end if
'** データをセッションで保持
session("data") = "abcdef"
【補足説明】
・application と session 変数を単純に毎回セットすれば、普通の変数と変
わりなく意味がない。
そこで、保持されていないとき、初回だけセットするように isempty() で、
存在の有無をチェックしている。
・application.lock と unlock は、安全のための排他制御である。
■レスポンス
・ASP は、なんらかのレンポンスをブラウザに返す必要があります。
通常は HTML ソースを返すわけですが、これには response オブジェクトを
使用します。
response.write(data...)
・レスポンスをバッファ出力して処理性能を向上させることもできます。
但し、あまり時間のかかる処理では、体感的に逆にレスポンスが悪く感じる
ことでしょう。バッファをフラッシュするか使用しないか判断しましょう。
Response.Buffer = false 'バッファ使用せず(デフォルト)
Response.Buffer = true 'バッファ使用
Response.Flush '現時点まで格納されているバッファを出力
Response.End '処理を終了して、バッファを出力
Response.Clear 'バッファをクリア
■インクルードソース
・共通関数などをインクルードすることができる。
指定は、<% ... %> 外で行う。
...
%>
<!-- #include file="include/com.asp" -->
<!-- #include file="include/oo4o.asp" -->
<%
...
・この他に、SSI(サーバ・サイド・インクルード) には、次のような構文が
ある。
<!-- #include virtual="include/com.asp" -->
<!-- #exec cgi="/w_test/a.asp" -->
■エスケープシーケンス
chr(10) ラインフィード
chr(13) 改行
chr(0) NULL 文字
■エラー
err.Description エラー内容
err.Number エラーコード
err.Source エラーソース
■VB6 との違い
・一部の関数、
mid
format
標準ファイル入出力 (ファイルシステムオブジェクトで代用する)
バイナリファイル入出力
などが削られている。
VB6 で DLL を作成して、ASP から呼ぶことによって補えます。
■VB6 との共通点
・ほんんど VB6 と同じコーディングが使用できます。
VB6 の資料は、次から参照下さい。
■ASP VB Script 基礎編資料
■ASP VB Script ADO + SQL 応用編資料
■ASP VB Script oo4o + SQL 応用編資料
■ASP VB Script 基礎実地編資料
■SQL 基礎編資料
■SQL 基礎実地編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料
■PostgreSQL 編、JAVA Servlet、JSP 編資料
■MySQL 編資料