Web Artisan Blog - ウェブ アルチザン ブログ

ASPでのOracle接続プーリング処理サンプルメモ

ASP・VB・Excel (24 items)

2005年01月21日

Research Artisan Pro ←リサーチアルチザンがパワーアップして復活しました!!
■global.asa内でOracle接続。

・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/パスワード,オプション

以下は、各ASP内で処理。

■コネクションの取得と開放(データベースオブジェクトの取得と開放)。

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


前の記事 次の記事

Comments

コメントは、まだ書かれていません

Add Comments

Trackback

トラックバックはありません

Trackback URL

http://www.res-system.com/weblog/action.php?action=plugin&name=TrackBack&tb_id=411