当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。

テクてく Lotus 技術者 Slack に参加しよう!

2008年5月30日金曜日

特定のディレクトリのデータベース名の抽出

ノーツクライアントもしくはドミノサーバの特定のディレクトリにどのようなDBがあるのかを調べるサンプルです。
「データベースを開く」コマンドやカタログDBからでは、探しきれないDBも探すことができます。
(上記のいずれも、DBのプロパティで無効にすることができる)

隠れているDBを探すためや、ノーツDBの棚卸しに利用できるのではないでしょうか。

Sub Click(Source As Button)
    'データベースの一覧の変数の定義
    Dim session As New NotesSession
    Dim directory As NotesDbDirectory
    Dim db As NotesDatabase
    
    'プログラム変数の定義
    Dim res As String
    Dim sbj As String
    Dim i As Integer
    
    'データベースの一覧を取得する場所を選択する
    res = Inputbox ( "サーバー名を入力してください。" & Chr$(10) & "loaclの場合はローカルコンピュータを参照します。",_
    "データベースの一覧", "local" )
    'キャンセルを押した場合は処理を中断、localの場合はNULLに変換
    If res = "" Then
        Exit Sub
    Elseif res = "local" Then
        res = ""
    End If
    Set directory = New NotesDbDirectory( res )
    
    '一覧を取得するディレクトリを選択する。
    Sdir = Inputbox ( "検索するディレクトリ名を入力してください。" & Chr$(10) & "空白の場合はルートディレクトリを参照します。",_
    "ディレクトリの選択", "" )
    If Sdir = " " Or Sdir = " " Then
        Sdir = ""
    Else
        '全部小文字に変換
        Sdir = Strconv ( Sdir , 2 )
    End If
    
    i = 0
    '最初のデータベースを取得する
    Set db = directory.GetFirstDatabase( DATABASE )
    'データベースを全部取得するまで繰り返す
    Do While Not (db Is Nothing )
        yen = Instr( db.FilePath, "\" )
        If yen = 0 Then
            If Sdir = "" Then
                i = i + 1
                sbj = sbj & Cstr( i ) & "." & db.Title & " ; " & db.FilePath & Chr$(10)
            End If
        Else
            If Strconv( Left( db.FilePath, yen - 1 ), 2 ) = Sdir Then
                i = i + 1
                sbj = sbj & Cstr( i ) & "." & db.Title & " ; " & db.FilePath & Chr$(10)
            End If
        End If
        'dbの次のデータベースを取得する(GetFirstDatabaseとペアで使うこと)
        Set db = directory.GetNextDatabase
    Loop
    
    'NULLの場合はローカルなので、「ローカルコンピュータ」を代入する
    If res = "" Then
        res = "ローカルコンピュータ"
    End If
    Messagebox sbj, 0, res & "のデータベースの一覧"
End Sub


0 件のコメント: