扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
偶尔,我们需要查询Domino以外的数据和关系很远的关系型数据库世界。这时,
我们就会使用那些熟悉的工具来存取关系型数据库中的信息,这就使得ODBC迅速
发展起来,此外不仅ODBC可以把Domino和关系型数据库连接起来,而且你可以用
LotusScript写一个代理。
当你需要在你的DB2/Oracle/Access数据库上运行一个查询并把输出结果作为一个
易读的网页给第三方看时将会发生什么情况呢?这时我们就需要真正考虑在Domi
no中ODBC了。所以这就是我们的理想状况:我们要从Notes客户端上运行一个SQL
在外部数据源中查询数据,然后产生一个输出,可以让用户通过Web和Notes查看
。
这个算法很简单:
连接外部数据源
从用户端取得SQL查询
运行SQL查询
产生输出
关闭数据源连接
好了,如果你不懂SQL,那么这部分代码可能是整个代理中最难的部分。而其他的
事情相对来说比较简单(如果你通过学习下面的代码所表示的算法)。这个代理
被用于从操作菜单中激活。并在Notes文档的表单上产生输出,毕竟,如果没有必
要的话,又何必绕弯子去建立一个HTML的加载呢?把数据库该为即将接受输出的
那个数据库,并且把连接改到即将被查询的ODBC数据源。(记住:你必须首先设
置好ODBC连接,否则下面的代码不会工作的。)
'-- declare all variables
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim view As NotesView
Dim display As NotesItem
Dim con As New ODBCConnection
Dim qry As New ODBCQuery
Dim result As New ODBCResultSet
Dim dvdTitle As String
Dim studio As String
Dim avail As String
Dim query_input As String
Dim defaultQuery As String
Set db = session.CurrentDatabase
Set doc = New notesDocument(db)
Set view = db.GetView("ODBCView")
Set display = New notesItem(doc, "display", "")
'-- set up connection to external data source, Access database
Set qry.Connection = con
Set result.Query = qry
con.ConnectTo("ex_database")
'-- get SQL from user
defaultQuery = "SELECT * FROM [table]"
query_input = Inputbox("Defaults to: " & defaultQuery, "SQL statement"
, qry.SQL)
If query_input = "" Then query_input = defaultQuery
'-- run SQL query
qry.SQL = query_input
result.Execute
'-- generate output from query
Do
result.NextRow
dvdTitle = result.GetValue("DVDTITLE", dvdTitle)
studio = result.GetValue("STUDIO",studio)
avail = result.GetValue("AVAIL",avail)
display.AppendToTextList(dvdTitle & " " & studio & " " & avail)
msg = dvdTitle
Loop Until result.IsEndOfData
Call doc.replaceItemValue("Form", "ODBCform")
Call doc.Save(True, False)
'-- close database, and disconnect from ODBC
result.Close(DB_CLOSE)
con.Disconnect
这个代理目前连到一个包含有关DVD数据的一个小数据库。所以这个代理可能不会
正常运行,因为你不太可能拥有一个叫做“ex_database”的数据源,也不太可能
在这个数据源中有有关DVD的数据。然而,连到任何关系型数据库的原理是一样的
。提取你的真正有用的数据库中的数据,你将开始你的工作。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者