解决思路:VB中传入参数,并调用Notes数据库中的代理来实现。
1 VB中运行代理
例如:要创建一份文档表单名称Student,四个域Name、Sex、Age、Memo,
域值分别zhangsan、M、26、hello,则
strUrl="http://127.0.0.1/domcfg.nsf/WriteRecord?OpenAgent"
strPara="&DB=oa/system.nsf"
strPost="&Field=Form,Name,Sex,Age,Memo&Value=Student,zhangsan,M,26,hello"
strRet=DoPost(strUrl,strPara,strPost)
Msgbox "运行结果:" & strRet
Function DoPost(strUrl As String, Optional strPara As String, Optional strPost As String) As String
Dim xmlHttp As Object
Set xmlHttp = CreateObject("Microsoft.XMLHTTP")
Call xmlHttp.Open("POST", strUrl + strPara, False)
Call xmlHttp.Send(strPost)
DoPost = xmlHttp.responseXML.documentElement.Text
End Function
2 创建文档WriteRecord代理:
Sub Initialize
On Error Goto Alert
Dim ss As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim dbTarget As NotesDatabase
Dim docTarget As NotesDocument
Dim strPara As String
Set db = ss.CurrentDatabase
Set doc = ss.DocumentContext
'数据库
strPara = GetParaValue(doc.Query_String_Decoded(0),"Db","")
If strPara = "" Then
Set dbTarget = db
Else
Set dbTarget = New NotesDatabase("",strPara)
If Not(dbTarget.IsOpen) Then
PrintXML "操作失败"
Exit Sub
End If
End If
Dim i As Integer
'表单域及域值,传入数据使用","做为分隔符
Dim varField As Variant
Dim varValue As Variant
strPara = GetParaValue(doc.Request_Content(0),"Field","")
varField = Split(strPara,",")
strPara = GetParaValue(doc.Request_Content(0),"Value","")
varValue = Split(strPara,",")
'新建文档
If varField(0)<>"" Then
Set docTarget = New NotesDocument(dbTarget)
For i=0 To Ubound(varField)
Call docTarget.ReplaceItemValue(varField(i),varValue(i))
Next
Call docTarget.Save(True,True)
PrintXML "操作成功"
Else
PrintXML "获取参数失败"
End If
Exit Sub
Alert:
Msgbox "Error:" & Error & " Erl:" & Erl & " Err:" & Err
PrintXML "操作失败"
End Sub
Function GetParaValue(Byval strQuery As String,Byval strName As String,Byval strDefault As String) As String
Dim strPara As String
Dim intPos As Integer
intPos=Instr(Lcase$(strQuery),"&" & Lcase(strName) & "=")
If intPos>0 Then
strPara=Mid$(strQuery ,intPos+2+Len(strName))
If Instr(strPara,"&")>0 Then
strPara=Strleft(strPara,"&")
End If
GetParaValue=Trim$(strPara)
Else
GetParaValue=strDefault
End If
End Function
Sub PrintXML(Byval strXML As String)
Print "content-type:text/xml; charset=gb2312"
Print "<?xml version=""1.0"" encoding=""gb2312""?>"
Print "<center>" & strXML & "</center>"
End Sub
3 说明
(1)DoPost函数中的参数格式需要同代理保持一致
(2)示例中增加传入Db参数,若参数为空则表示在当前数据库中创建文档
(3)示例处理中将文档所属表单做为参数传入,通过Field中的Form及对应的值来指定
(4)示例中只处理各数据值为文本的情况,读者可通过增加传入区别数据类型的参数以解决该问题
分享到:
相关推荐
Notes SQL 8.5.1用于odbc连接Lotus Notes数据库 可用于Delphi,vb等连接Lotus Notes,访问表和视图 或更新字段
VB操作Lotus Notes数据库 Lotus提供了一个后台的COM类NotesSession。NotesSession是一个功能强大的对象模型,它提供了其他Notes对象的接口,即只有通过它才能访问Notes中的数据库对象NotesDatabase、NotesView等对象...
利用VB操作LotusNotes数据库发送邮件
c/s用vb6.0) 前辈的东西希望对大家有用哈,另外这也是我的asp.ne的处女作,比较简单,实现了基本的对数据库的增删改查。cs的是很简单的程序,只用了不到半小时,没有任何商业价值,仅仅是见证自己学习的一个轨迹,...
这是我自己设计的图书管理系统,包括用VB+MSSQL2000做的C/S版和用JSP+JAVABEAN+MSSQL2000做的B/S版,包含B/S版源码,C/S版源码,数据库中不仅有分离的数据库,而且还有可以用来建库的语句,附带有比较完整的说明稳当,全部...
VB编程源代码 74将数据库输出到一个文本文件中VB编程源代码 74将数据库输出到一个文本文件中VB编程源代码 74将数据库输出到一个文本文件中VB编程源代码 74将数据库输出到一个文本文件中VB编程源代码 74将数据库输出...
通过将信息放入数据库,实现调用数据库,实现vb编程与数据库的互动。使我们近一步掌握程序设计语言开发软件技术,培养我们的软件工程设计思想。 2.1.2 应用目标 connie’s store系统软件能使收银员快速的熟悉整个...
VB 浏览数据库记录 VB 浏览数据库记录 VB 浏览数据库记录
是B/S模式的 用ASP.NET(VB)语言 OLEDB连接的数据库
使用VB.NET对ACCESS数据库进行添加,删除,插入,修改,查询等用法,有解释 实例,帮助初学者理解,可以相互交流
VB编程源代码 72将多媒体文件保存到数据库中VB编程源代码 72将多媒体文件保存到数据库中VB编程源代码 72将多媒体文件保存到数据库中VB编程源代码 72将多媒体文件保存到数据库中VB编程源代码 72将多媒体文件保存到...
VB数据库编程 详细介绍了VB数据库编程的方方面面 VB数据库编程 详细介绍了VB数据库编程的方方面面 VB数据库编程 详细介绍了VB数据库编程的方方面面
自己用vb做的向access数据库中添加照片的源代码,经过本人测试,成功运行
VB将多媒体文件写入Access数据库中 VB将多媒体文件写入Access数据库中
vb将text中的数据保存到数据库中vb将text中的数据保存到数据库中
VB ADO 数据库 压缩,VB编写的用ADO压缩数据库的例子
vb.net将如何将excel中的数据导入到数据库
VB 使用ADO对象访问数据库 VB 使用ADO对象访问数据库
使用VB 读取EXCEL里的信息,并连接远程的数据库,插入数据。 希望对你有用。我能用。
VB 使用数据网格控件浏览数据库 VB 使用数据网格控件浏览数据库