2011年10月15日土曜日

NotesSQLに関するドキュメントとサンプルコード

NotesDB に格納されている文書を集計したいときなど、SQL文が使えると便利なんだろうなって思うときが時々あります。
いろいろと調べていたら、NotesSQLというソフトの存在を知りました。
しかし、いざ使ってみようと思うと日本語の情報が全然ない・・・。
あるとき、Microsoft Office SharePoint Server 2007のサイトを見ていましたら
Microsoft Office SharePoint Server 2007 自習書 Notes/Domino アプリケーション資産の活性化
というのを発見。早速PDFをダウンロードしてみたら、日本語でNotesSQLの使い方が懇切丁寧に書いてありました。
しかも使い方だけでなくダウンロード方法も解説してあります。
ConnectionStringの書き方に少々苦戦しましたが、無事VB.NETからアクセス出来ました!!
ちょっと凝ったSQL文を書くと、すぐにこけるのでNotes側のViewで工夫することがポイント。(特にINNER JOIN等での結合は出来なかった。)

まさか、ライバルから情報を入手出来るとは夢にも思っていませんでした。

サンプルコードは非接続型で、GridViewにバインドするコードです。
WindowsForm、WebFormどちらでも可。もちろん、接続型でももちろん接続可能。

サンプルコード(VB.NET)

Dim strConn As String = "DRIVER={Lotus NotesSQL Driver (*.nsf)}; " & _
                                                                          "Server=ServerName; " & _
                                                                          "Database=DbName.nsf; " & _
                                                                          "Uid=UserID; " & _
                                                                          "Pwd=password; "

Dim strSQL As String
Dim dtAdapter As Odbc.OdbcDataAdapter
Dim dtSet As DataSet

strSQL = "SELECT * FROM ViewName" ' 単純なWHERE句なら指定可能

dtAdapter = New Odbc.OdbcDataAdapter(strSQL, strConn)
dtSet = New DataSet
dtAdapter.Fill(dtSet, "board")

GV_Board.DataSource = dtSet.Tables("board")
GV_Board.DataBind()