DBオープン

OO4O for Visual Basic 6 (+SP5)

オラクル9i に接続し、該当するDBをオープンする。

 

 

‘/***********************************************************/
‘/* [ 名 称 ] subOpenDB : オラクルDBオープン                               
‘/* [ 戻 値 ] なし                                                           
‘/* [ 概 要 ] オラクルDBをオラクルモードでオープンする。                   
‘/*           但し、指定INIファイルがあれば、そこからオラクル接続用の     
‘/*           情報を取得し、それを使ってオラクルDBをオープンする。         
‘/* [ 履 歴 ] 2003/11/01 新規 v01.00 会社名 担当者名                      
‘/***********************************************************/
Public Sub subOpenDB()
On Error GoTo Err_subOpenDB
‘変数宣言———————————————————————
    Const strINIFILE_PATH   As String = "C:¥ORA.INI"  ‘オラクル接続情報INIファイル
    Const intMAX_LOOP       As Integer = 3  ‘ループ最大回数
    Dim strUser                 As String       ‘ユーザー名変数
    Dim strPassword          As String       ‘パスワード変数
    Dim strSetzokuMojiretu  As String       ‘接続文字列変数
    Dim strMsg                  As String       ‘メッセージ変数
‘—————————————————————————–
    ‘変数を初期化する
    strUser = vbNullString
    strPassword = vbNullString
    strSetzokuMojiretu = vbNullString    

    ‘INIファイルが存在しない場合
    If Dir$(strINIFILE_PATH) = vbNullString Then
        ‘DBオープンのパラメータをデフォルトに設定する
        strUser = "SCOTT"
        strPassword = "TIGER"
        strSetzokuMojiretu = vbNullString 
    Else

        ‘INIファイルより「USER」パラメータを詠み込めなかった場合
        If blnGetInFileData("ORACLE", "USER", strUser) = False Then
            ‘引数(strMsg)だけでエラーメッセージを編集する
            strMsg = strINIFILE_PATH & "ファイルにUSER値が設定されてません。" & _
                    vbCrLf & "このファイルに値をセットして下さい。" & vbCrLf & _
                    "強制終了します。"
            ‘エラーメッセージを出力する
            Call MsgBox(strMsg, vbOKOnly + vbCritical + vbApplicationModal, _
                App.Title & "(エラー発生)")
            ‘当アプリケーションを終了する   
            Call subEndApp
        End If

        ‘INIファイルより「Password」パラメータを詠み込めなかった場合
        If blnGetInFileData("ORACLE", "PASSWORD", strPassword) = False Then
            ‘引数(strMsg)だけでエラーメッセージを編集する
            strMsg = strINIFILE_PATH & "ファイルにPassword値が設定されてません。" & _
                    vbCrLf & "このファイルに値をセットして下さい。" & vbCrLf & _
                    "強制終了します。"
            ‘エラーメッセージを出力する
            Call MsgBox(strMsg, vbOKOnly + vbCritical + vbApplicationModal, _
                App.Title & "(エラー発生)")
            ‘当アプリケーションを終了する
            Call subEndApp
        End If





        ‘INIファイルより「SetzokuMojiretu」パラメータを詠み込めなかった場合
        If blnGetInFileData("ORACLE", "SetzokuMojiretu", strSetzokuMojiretu) = False Then
            ‘引数(strMsg)だけでエラーメッセージを編集する
            strMsg = strINIFILE_PATH & "ファイルにSetzokuMojiretuが設定されてません。" & _
                    vbCrLf & "このファイルに値をセットして下さい。" & vbCrLf & _
                    "強制終了します。"
            ‘エラーメッセージを出力する
            Call MsgBox(strMsg, vbOKOnly + vbCritical + vbApplicationModal, _
                App.Title & "(エラー発生)")
            ‘当アプリケーションを終了する
            Call subEndApp
       End If         

    End If    

    ‘Oracle Objects Serverとの接続する
    Set poraSess = CreateObject("OracleInProcServer.XOraSession")
    Set poraSessW = CreateObject("OracleInProcServer.XOraSession")

On Error Resume Next

    ‘接続に失敗した時は3回トライする
    For pintLoop1 = 1 To intMAX_LOOP
        ‘Oracle RDBMSとの接続(Oracleモード「1&」で接続)する
        Set poraDb = poraSess.DbOpenDatabase(strSetzokuMojiretu, _
                                         strUser & "/" & strPassword, _
                                         ORADB_ORAMODE + ORADB_NOWAIT)
        ‘接続エラーが無い場合
        If poraSess.LastServerErr = 0 Then
            ‘ランタイムエラーが無い場合
            If Err.Number = 0 Then
                ‘接続処理を抜ける
                GoTo Next_subOpenDB: 
            End If 
        End If         

    Next pintLoop1
    ‘3回ルールしたがDB接続できなかった。エラー処理ロジックへ移動する。
    GoTo Err_subOpenDB:

Next_subOpenDB:

    ‘接続に失敗した時は3回トライする
    For pintLoop1 = 1 To intMAX_LOOP
        ‘Oracle RDBMSとの接続(Oracleモード「1&」で接続)する
        Set poraDbW = poraSessW.DbOpenDatabase(strSetzokuMojiretu, _
                                         strUser & "/" & strPassword, _
                                         ORADB_ORAMODE + ORADB_NOWAIT)
        ‘接続エラーが無い場合
        If poraSessW.LastServerErr = 0 Then
            ‘ランタイムエラーが無い場合
            If Err.Number = 0 Then
                ‘接続処理を抜ける
                GoTo Exit_subOpenDB: 
            End If 
        End If 
    Next pintLoop1
    ‘3回ルールしたがDB接続できなかった。エラー処理ロジックへ移動する。
    GoTo Err_subOpenDB:    

Exit_subOpenDB:
    ‘当プロシージャを終了する
    Exit Sub

Err_subOpenDB:
    ‘ランタイムエラーが発生したのでエラー処理をする
    Call subErrSyori("subOpenDB", Err.Number, Err.Description)
End Sub

 

 

初期登録日: 2003年11月09日

最終更新日: 2008年01月26日

< Home ヘ戻る >


キーボード

ブラウザ画面の文字サイズを変更するショートカットキー

  1. [ CTRL ] + [ + ]  :  文字を大きく
  2. [ CTRL ] + [ ]  :  文字を小さく

Shortcut Keys

  1. [ CTRL ] + [ + ]  :  Up the font size
  2. [ CTRL ] + [ ]  :  Down the font size