您的位置:软件首页 / 应用程序 / Domino 代理技术: ODBC 连接

Domino 代理技术: ODBC 连接

ZDNet 软件频道 更新时间:2007-09-11 作者:www.chinaitpower.com 来源:www.chinaitpower.com

本文关键词:技巧 ODBC Domino Lotus

偶尔,我们需要查询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的数据。然而,连到任何关系型数据库的原理是一样的
。提取你的真正有用的数据库中的数据,你将开始你的工作。

[an error occurred while processing this directive]
技术关注
当前技术类目:
协作办公本类技术关注比例:
2软件关注排行:2--
3企业级技术关注度:3--

协作办公技术相关文章:

文章类型收录数量
94 协作办公的解决方案:
91 协作办公的成功案例:
40 协作办公的相关产品:

软件频道 技巧 最新报道

软件频道 ODBC 最新报道

软件频道 Domino 最新报道

软件频道 Lotus 最新报道

爱卡汽车网 | CNET科技资讯网 | CWEEK | 蜂鸟网 | GameSpot China | 个人电脑 | 开发者在线 | PChome | Solidot | SPN |
投影顾问网 | 万维家电网 | 网友世界 | 西域IT | ZDNet China | 中关村在线 | 中小企业成长网
CNET Networks
Copyright © 1997-2007 CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号