OO4O 関数

  Database オブジェクトの取得



  

Public Function GetDatabase( )

	Set OraDatabase	= OraSession.GetDatabaseFromPool(10)
	OraDatabase.LastServerErrReset

	Set GetDatabase = OraDatabase

End Function
  

  トランザクションの開始



  

Public Function BeginTran( OraDatabase )

	On Error Resume Next 
	OraDatabase.Session.BeginTrans
	if OraDatabase.Session.LastServerErr <> 0 then
		OraDatabase.Session.CommitTrans
		OraDatabase.Session.BeginTrans
	end if
	On Error Goto 0

End Function
  

  トランザクションの終了

  

Public Function CommitTran( OraDatabase )

	OraDatabase.Session.CommitTrans

End Function
  

  RollBack

  

Public Function RollbackTran( OraDatabase )

	OraDatabase.Session.Rollback

End Function
  

  SELECT文の実行

  

Public Function OraSelect( OraDatabase, ByRef OraDynaset, SqlQuery )

	Set OraDynaset	= OraDatabase.CreateDynaset(SqlQuery,2)
	if OraDynaset.EOF then
		OraSelect = False
	else
		OraSelect = True
	end if

End Function
  

  SQL文の実行

  

Public Function ExecuteSQL( OraDatabase, SQLCommand )

	On Error Resume Next 
	OraDatabase.ExecuteSQL( SQLCommand )
	if OraDatabase.LastServerErr <> 0 then
		ExecuteSQL = False
	else
		ExecuteSQL = True
	end if
	On Error Goto 0

End Function
  

  一時テーブルの作成(存在する場合はTRUNCATE)

  

Public Function CreateTmpTable( DefinePath, TableName )

	Dim	FileSystem
	Dim	FileHandle
	Set FileSystem	= Server.CreateObject( "Scripting.FileSystemObject" )

	TargetTableName = "ZT" & Session.SessionID & TableName

	Set OraDatabase = GetDatabase( )
	SqlQuery = "select TABLE_NAME from USER_TABLES where TABLE_NAME = " & Ss( TargetTableName )
	Set OraDynaset	= OraDatabase.CreateDynaset(SqlQuery,2)
	if OraDynaset.EOF then
		SqlUpdate = "CREATE TABLE " & TargetTableName & " ( "

		SourcePath = Server.MapPath( DefinePath )
		Set FileHandle = FileSystem.OpenTextFile( SourcePath, 1 )

		Do while FileHandle.AtEndOfStream <> True 
			LineString = FileHandle.ReadLine
			SqlUpdate = SqlUpdate & LineString & vbCrLf
		Loop

		FileHandle.Close

		SqlUpdate = SqlUpdate & " )"

		On Error Resume Next 
		OraDatabase.ExecuteSQL( SqlUpdate )
		if OraDatabase.LastServerErr <> 0 then
			CreateTmpTable = False
			Call Alert( "一時テーブルの作成に失敗しました" )
			Exit Function
		end if
		On Error Goto 0
	else
		SqlUpdate = "truncate table " & TargetTableName
		On Error Resume Next 
		OraDatabase.ExecuteSQL( SqlUpdate )
		if OraDatabase.LastServerErr <> 0 then
			CreateTmpTable = False
			Call Alert( "一時テーブルの初期化に失敗しました" )
			Exit Function
		end if
		On Error Goto 0
	end if

	CreateTmpTable = True

End Function
  

  インデックス付き一時テーブルの作成(存在する場合はTRUNCATE)

  

Public Function CreateTmpIdxTable( DefinePath, TableName, IdxColumns )

	Dim	FileSystem
	Dim	FileHandle
	Set FileSystem	= Server.CreateObject( "Scripting.FileSystemObject" )

	TargetTableName = "ZT" & Session.SessionID & TableName

	Set OraDatabase = GetDatabase( )
	SqlQuery = "select TABLE_NAME from USER_TABLES where TABLE_NAME = " & Ss( TargetTableName )
	Set OraDynaset	= OraDatabase.CreateDynaset(SqlQuery,2)
	if OraDynaset.EOF then
		SqlUpdate = "CREATE TABLE " & TargetTableName & " ( "

		SourcePath = Server.MapPath( DefinePath )
		Set FileHandle = FileSystem.OpenTextFile( SourcePath, 1 )

		Do while FileHandle.AtEndOfStream <> True 
			LineString = FileHandle.ReadLine
			SqlUpdate = SqlUpdate & LineString & vbCrLf
		Loop

		FileHandle.Close

		SqlUpdate = SqlUpdate & " )"

		On Error Resume Next 
		OraDatabase.ExecuteSQL( SqlUpdate )
		if OraDatabase.LastServerErr <> 0 then
			CreateTmpIdxTable = False
			Call Alert( "一時テーブルの作成に失敗しました" )
			Exit Function
		end if
		On Error Goto 0

		if IdxColumns <> "" then
			sToken = Split( IdxColumns, ":" )
			nToken = Ubound( sToken )
			For I = 0 to nToken
				SqlUpdate = "create index " & TargetTableName & "IDX" & I + 1 & " on " & TargetTableName
				SqlUpdate = SqlUpdate & " (" & sToken(I) & ")"
				On Error Resume Next 
				OraDatabase.ExecuteSQL( SqlUpdate )
				if OraDatabase.LastServerErr <> 0 then
					CreateTmpIdxTable = False
					Call Alert( "一時テーブルのインデックスの作成に失敗しました" )
					Exit Function
				end if
				On Error Goto 0
			Next
		end if

	else
		SqlUpdate = "truncate table " & TargetTableName
		On Error Resume Next 
		OraDatabase.ExecuteSQL( SqlUpdate )
		if OraDatabase.LastServerErr <> 0 then
			CreateTmpIdxTable = False
			Call Alert( "一時テーブルの初期化に失敗しました" )
			Exit Function
		end if
		On Error Goto 0
	end if

	CreateTmpIdxTable = True

End Function
  











   SQLの窓    create:2001/11/09  update:2014/09/07   管理者用(要ログイン)





フリーフォントWEBサービス

SQLの窓WEBサービス

SQLの窓フリーソフト

写真素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ