ASPでのOracle接続プーリング処理サンプルメモ
ASP・VB・Excel (24 items)
2005年01月21日
・global.asa
<OBJECT RUNAT=Server SCOPE=Application ID=OraSession
PROGID="OracleInProcServer.XOraSession"></OBJECT>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Option Explicit
Sub Application_OnStart()
OraSession.CreateDatabasePool 1, 50, 60, "TEST", "scott/tiger", 0
End Sub
Sub Application_OnEnd()
OraSession.DestroyDatabasePool
End Sub
</SCRIPT>
CreateDatabasePool
OraSession.CreateDatabasePool 初期値,最大値,タイムアウト(秒),DB名,ユーザーID/パスワード,オプション
■コネクションの取得と開放(データベースオブジェクトの取得と開放)。
Dim objOracle
Set objOracle = OraSession.GetDatabaseFromPool(10)
・・・・〜
・・・・〜
Set objOracle = Nothing
GetDatabaseFromPool
OraSession.GetDatabaseFromPool (待ち時間(秒))
※注意
Set objOracle = Nothingで切断できるが、
DB処理中にOracleエラーが発生した場合、
RemoveFromPoolを使用すれば、
他で使用されているデータベースオブジェクトに影響を与えることなく開放できる。
RemoveFromPool
objOracle.RemoveFromPool
■SELECT文発行
Dim objOraDynaset
Dim strSQL
strSQL = "SELECT USERCD FROM〜"
Set objOraDynaset = objOracle.CreateDynaset(strSQL, 0)
・・・・〜
・・・・〜
objOraDynaset.Close
CreateDynaset
objOracle.CreateDynaset(SQL文,オプション)
■INSERT、UPDATE文発行
Dim objOracle
Dim strSQL
Dim wLng
strSQL = "INSERT INTO 〜""
wLng = objOracle.ExecuteSQL(strSQL)
ExecuteSQL
処理された行数 = objOracle.ExecuteSQL(SQL文)
■トランザクション系処理
Dim objOracle
objOracle.Connection.BeginTrans
objOracle.Connection.CommitTrans
objOracle.Connection.Rollback
※注意
接続プーリングを行う場合、セッションオブジェクトでトランザクション処理を行うと、
他のデータベースオブジェクトに影響を与える。
よって、
objOracle.Connection.〜
のようにコネクションオブジェクトでトランザクション処理を行う事。
■エラー処理
・セッションオブジェクトエラー関数
OraSession.LastServerErr
OraSession.LastServerErrText
OraSession.LastServerErrReset
・データベースオブジェクトエラー関数
objOracle.LastServerErr
objOracle.LastServerErrText
objOracle.LastServerErrReset
