Takenoff Labs

Lotus Notes/Domino に関する Tips や、クラシックの名曲などを紹介します

[Notes/Domino] Lotus Script から RDB のデータをやりとりする

旧コンテンツで結構人気だった、Lotus Script から RDB に接続する方法をまとめて転記します。最近、全然 RDB 関係の仕事をしていないから、最新バージョンで動くのかどうか解りませんが、まぁ参考程度に。(ってか、ほとんど VB と同じやり方ですけど(^^; )

DAO

Dim dao As Variant
Dim ws As Variant
Dim mdb As Variant
Dim rs As Variant
Dim s As String

'Access2000,2002,2003: DAO.DBEngine.36
'Access2007: DAO.DBEngine.120 ?
Set dao = CreateObject("DAO.DBEngine.35")

'---ファイルパス直指定の場合---
Set mdb = dao.Workspaces(0).OpenDatabase("MDBのファイルパス")
'---ODBCの場合---
Set ws = dao.CreateWorkspace("ODBC""ユーザー名","パスワード",1)
'OpenDatabaseの第3引数はReadOnlyかどうかです
Set mdb = ws.OpenDatabase("接続文字列", False, True, "ODBC;UID=ユーザー名;PWD=パスワード")

'たとえばこんな処理
Set rs = mdb.OpenRecordset("SELECT文")
If rs.EOF = False Then
	s = rs.Fields("列名").value
End If

Set rs = nothing
Set mdb = nothing
Set dao = nothing

ADO

Dim con As Variant
Dim rs As Variant
Dim s as String

Set con = CreateObject("ADODB.Connection")

'---ファイルパス直指定の場合---
'Access2000,2002,2003: Microsoft.Jet.OLEDB.4.0
'Access2007: Microsoft.ACE.OLEDB.12.0 ?
Call con.Open("Provider=Microsoft.Jet.OLEDB.3.51; Data Source = ファイルパス;")
'---ODBCの場合---
Call con.Open("DSN=接続文字列;UID=ユーザー名;PWD=パスワード")

con.CursorLocation = 3

'たとえばこんな処理
Set rs = con.Execute("SELECT文")
If rs.EOF = False Then
	s = rs.Fields("列名").Value
End If

Call rs.Close
Set rs = Nothing
Set con = Nothing

Oracle Objects for OLE (OO4O) (要 Oracle Client)

Dim ss As Variant
Dim db As Variant
Dim ds As Variant
Dim s As String

Set ss = CreateObject("OracleInProcServer.XOraSession")
Set db = ss.DbOpenDatabase("接続文字列","ユーザー名/パスワード",0&)
Set ds = db.DbCreateDynaset("SELECT文", &H4&)

'たとえばこんな処理
If ds.EOF = False Then
	s = ds.Fields("列名").Value
End If

Set db = Nothing
Set ds = Nothing
Set ss = Nothing
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
読み込み中...

トラックバック

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

コメント

コメントはありません

※コメントは承認制となっております。管理者が承認するまで表示されません。申し訳ありませんが、投稿が表示されるまでしばらくお待ちください。





(以下のタグが使えます)
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

For spam filtering purposes, please copy the number 6694 to the field below:

^
×