中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > 数据库综合
通过LS:DO(ODBC)技术实现Notes访问DB2/400
作者:未知 时间:2005-09-13 23:43 出处:Blog.ChinaUnix.net 责编:chinaitpower
              摘要:通过LS:DO(ODBC)技术实现Notes访问DB2/400

在Lotus Notes平台访问关系型数据库,方法主要有以下4种:

1)LS:DO(ODBC):异种平台互访数据库的数据源;
2)DECS:Lotus DECS服务;
3)LC  LSX:利用LOTUS CONNECTOR的API访问外部数据库;
4)LEI(LOTUS ENTERPRISE INTERGRATOR):LOTUS的一个工具软件,用来在不同的数据平台上交换数据。 

本文将对对利用LS:DO(ODBC)技术实现Notes访问DB2/400数据库进行介绍。 

本文将以近期公司实施的海关EDI加贸企业联网监管系统的Notes端开发片段进行阐述。

1、 Notes端创建对应AS/400端需要访问数据的PF文件(ZICTLP)的DDS结构的表单,其中域栏表示Notes端的字段,FIELD ID栏是DDS定义的字段:

2、表单创建完毕,接着创建对应的View,添加『更新参数表』按钮:

☆『更新参数表』按钮后台对应的LotusScript语言如下:

Sub Click(Source As Button)
 
 Dim ws As New NotesUIWorkspace
 Dim session As New NotesSession
 Dim db As NotesDatabase
 Dim doc As NotesDocument
 Dim FullFileName As String
 
 Set db = session.CurrentDatabase
 
 Dim view As NotesView
 Dim collection As NotesViewEntryCollection
 Dim entry As NotesViewEntry
 
 Set view = db.GetView("EDI参数表")
 Set collection = view.AllEntries
 Set entry = collection.GetFirstEntry()
 While Not(entry Is Nothing)
  Set doc = entry.Document
  doc.Remove(True)
  Set entry = collection.GetNextEntry(entry)
 Wend
 
 Call ws.ViewRefresh
 
 
    'Create Connection object
 Set Con = New ODBCConnection
 
     'Connect to data source 'R21AFLB1'
 Dim ds As String, user As String, pw As String
 ds   = "R21AFLB1"
 user = "RINKS211"
 pw   = "RINKS211"
 retcode% = Con.ConnectTo( ds, user, pw )
 
     'Exit if Connection failed
 If ( retcode% = False ) Then
  Msgbox "不能正常连接数据源:" + ds
  error% = conn.GetError
  extendedMessage$ = conn.GetExtendedErrorMessage(error%)
  Msgbox extendedMessage$
  Exit Sub
 End If
 
     'Create Query object
 Set Qry = New ODBCQuery     
 
     'Assign  Connection to Query
 Set Qry.Connection = Con 
 
     'Assign SQL Query  
 Qry.SQL = " Select * from ZICTLP where CTLTAG='I' "
 
     'Create ResultSet Object
 Set Res = New ODBCResultSet
 
     'Assign Query to ResultSet
 Set Res.Query = Qry
 
     'Execute Query    
 retcode% = Res.Execute
 
     'Exit if Execute failed
 If ( retcode% = False ) Then
  Msgbox "不能执行查询:" + Qry.SQL
  error% = data.GetError
  extendedMessage$ = data.GetExtendedErrorMessage(error%)
  Msgbox extendedMessage$
  Exit Sub
 End If
 
     'If No ResultSet then Exit sub
 If Not Res.IsResultSetAvailable() Then
  Msgbox "没有找到记录!"
  Exit Sub
 End If
 
 
 Do  
  Res.NextRow
  
  Set doc = db.CreateDocument
  doc.Form = "ZICTLP"
  
  'Transfer data from zictlp  
  doc.XCTLITM       = Res.GetValue("CTLITM")
  doc.XCTLNO        = Res.GetValue("CTLNO")
  doc.XCTLHS        = Res.GetValue("CTLHS")
  doc.XCTLHSB      = Res.GetValue("CTLHSB")
  doc.XCTLCML      = Res.GetValue("CTLCML")
  doc.XCTLEML      = Res.GetValue("CTLEML")
  doc.XCTLCUR      = Res.GetValue("CTLCUR")
  doc.XCTLTAG      = Res.GetValue("CTLTAG")
  doc.XCTLDAT      = Res.GetValue("CTLDAT")
  doc.XCTLFT1      = Res.GetValue("CTLFT1")
  
  
  Call doc.Save(False,False)
  
 Loop Until Res.IsEndOfData
 
 Call ws.ViewRefresh
 
 con.Disconnect
 
End Sub


3、Notes客户端配置R21AFLB1为数据源名称的ODBC。

控制面板—管理工具—数据源(ODBC)—系统DSN,添加“Client Access ODBC Driver (32-bit)”驱动程序。
在“常规”栏中添加“数据源名:R21AFLB1”。
在“服务器”栏中指定“SQL缺省库:R21AFLB1”,出于数据安全,“连接类型”指定为“只读(只允许Select语句)”。
为避免出现转换数据时的不必要麻烦,建议在“转换”栏把“将二进制数据(CCSID 65535)转换为文本”选项选上。

4、需要实现数据从DB2/400—>Notes时,只需要执行『更新参数表』按钮即可。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有