Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > PHP > [B/S]使用vb插入记录到lotus notes数据库中
【标  题】:[B/S]使用vb插入记录到lotus notes数据库中
【关键字】:B/S,vb,lotus,notes
【来  源】:http://blog.csdn.net/cgs1999/archive/2006/05/31/765249.aspx

[B/S]使用vb插入记录到lotus notes数据库中

Your Ad Here

解决思路: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)示例中只处理各数据值为文本的情况,读者可通过增加传入区别数据类型的参数以解决该问题

层布局:【上一篇】
电脑报的HackGame,没意思:【下一篇】
【相关文章】
  • ASP VBScript 分页函数 by Stabx, 第三版
  • VBScript 中 Select Case 的三个典型应用 By Stabx
  • VB开发ASP组件经典事例[一]
  • VB开发ASP组件经典事例[二]
  • VB开发ASP组件经典事例[三]
  • 在.NET中如何实现像VB.NET中MSBBOX的功能!?
  • 最近有了许多LOTUS作业+DOMINO用户重验证
  • Office 2007的VBA,以及Office开发的随想
  • VC通过Automation操纵Lotus NotesUIWorkspace
  • 用于ISA2004的VPN隔离的检查客户终端MAC地址的VBS脚本
  • 【随机文章】
  • C#一个显示分页页码类
  • rdesktop用法
  • 在PB中如何使用软件测试工具rational teamtest
  • 黑客—技术的凝聚者
  • 【热布克hbk】超经典(转):C程序设计之四书五经
  • Nepenthes Malware Collection
  • C#2.0 新特性探究(二) 委托与匿名委托
  • 小心使用 HttpSessionState.Abandon 方法
  • stl 容器(1)
  • ELF Section Header 分析
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.