注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

mylotustips的博客

IBM Lotus协作产品家族经验分享

 
 
 

日志

 
 
关于我

欢迎大家使用SR向IBM800提交问题http://www.ibm.com/support/servicerequest 可以随时查看问题状态,上传文件

网易考拉推荐

LotusScript样例:如何通过ODBC查询SQL Server数据库  

2012-08-08 14:28:09|  分类: LotusScript |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

测试环境: Domino 8.5.3 FP1 on Windows 2003 繁体中文

运行前,需要在控制面板中添加 ODBC 数据源。
运行后,会在当前数据库中创建一个新文档,并将数据源的信息写到这个文档中。

注意,T1,T2字段的值是中文,所以属性建议使用NVarchar转换,不然某些汉字可能会变成??乱码

Agent Information
Name: odbc2
Last Modification: 2012-07-24 16:46:22
Comment: Written by fly2moon for http://www.lotuschina.net/
Shared Agent: Yes
Type: LotusScript
State: Enabled
Trigger: Manually From Actions Menu
Acts On: None

LotusScript Code:
%REM
 Agent odbc
 Created 2012-6-13 by admin/ftm
 Description: Comments for Agent
%END REM
Option Public
Option Declare
 UseLSX "*lsxodbc"
Sub Initialize
 Dim con As New ODBCConnection
 Dim qry As New ODBCQuery
 Dim result As New ODBCResultSet
 Dim msg As String
 Dim m2 As String
 Dim i As Integer
 Dim fieldinfo, T1, T2 As variant
 con.ConnectTo("Test2")
 If Not con.IsConnected Then
  MessageBox "Could not connect to Testdb",, _
  "No connection"
  Exit Sub
 End If
 Set qry.Connection = con
 Set result.Query = qry
 qry.SQL = "SELECT CAST(t1 as NVARCHAR(1000)) as t1, CAST(t2 as NVARCHAR(1000)) as t2 FROM Test"
 result.Execute
 If Not result.IsResultSetAvailable Then
  MessageBox "Couldn't get result set",, "No data"
  Exit Sub
 End If
 msg = "Fields in test table:" & Chr(10)
 For i = 1 To result.NumColumns
  fieldInfo = result.FieldInfo(i)
  If fieldInfo(DB_INFO_READONLY) = DB_READONLY Then
   m2 = "read-only"
  Else
   m2 = "read-write"
  End If
  msg = msg & Chr(10) & i & " -> " & _
  result.FieldName(i) & ", " & "size " & " " & result.FieldSize(i) & ", " & m2
 Next
 MessageBox msg,, "Fields"
 Dim session As New NotesSession
 Dim richstyle As NotesRichTextStyle
 Dim rtbody As NotesRichTextItem
 Dim db As NotesDatabase
 Set richStyle = session.CreateRichTextStyle
 Set db=session.currentdatabase
 Do
  result.NextRow
  T1 = result.GetValue("T1", T1)
  T2 = result.GetValue("T2", T2)
  msg = msg & Chr(10) & T1 & " " & T2
 Loop Until result.IsEndOfData
 Dim Newdoc As New NotesDocument(db)
 Set rtBody = New  NotesRichTextItem( NewDoc , "test2" )
 Call rtBody.AddNewLine( 1 )
 Call rtBody.AppendText( msg )
 MessageBox msg,, "Values"
 result.Close(DB_CLOSE)
 con.Disconnect
 Call newdoc.save(True,True)
 %REM
 Dim session As New NotesSession
 Set richStyle = session.CreateRichTextStyle
 Set db=session.currentdatabase
 Dim Newdoc As New NotesDocument(db)
 Set rtBody = New  NotesRichTextItem( NewDoc , "test2" )
 richStyle.NotesFont = FONT_COURIER
 richStyle.FontSize = 8
 Call rtBody.AppendStyle( richStyle )
 Call newdoc.save(True,True)
 %END REM
End Sub



  评论这张
 
阅读(1025)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017