lotusscript通过ODBC实现与关系型数据库SQL的数据存储

     下面的代码运行之前必须在代理的Options里面加上 Uselsx "*lsxodbc",加载ODBC库才能调用ODBC连接类。
    “ODBC数据源”是运行SQL服务器后,在操作系统级的控制面板--管理工具--数据源(ODBC)中根据该SQL服务器添加的数据源。
1,读取关系型数据库SQL中的数据

ContractedBlock.gif ExpandedBlockStart.gif Code
Sub Initialize
 
Dim session As New NotesSession
 
Dim con As New odbcConnection
 
Dim qry As New odbcQuery
 
Dim res As New odbcResultSet
 
Dim status As Variant
 
Dim msg As String
 
On Error Resume Next
 status
=con.ConnectTo("ODBC数据源")
 
If status Then
  
Msgbox "ok"
 
Else
  
Msgbox "no"
 
End If
 
Set qry.Connection=con
 
Set curdb=session.CurrentDatabase
 
Set res.Query=qry
 qry.Sql
="SELECT * FROM PersonData"
 
Call res.execute
 
Msgbox res.NumColumns
 
Do
  
Call res.NextRow
  
For i = 1 To res.NumColumns
   msg 
=  res.GetValue(i)
   print msg
  
Next
 
Loop Until res.IsEndOfData
 
Call res.close
 
Call con.Disconnect
End Sub
2,写入数据到SQL
ContractedBlock.gif ExpandedBlockStart.gif Code
Sub Initialize
 
Dim con As New ODBCConnection
 
Dim qry As New ODBCQuery
 
Dim result As New ODBCResultSet
 
Set qry.Connection = con
 
Set result.Query = qry
 
Dim iname As String
 
Dim sex As String
 
Dim age As String
 
Dim com As String
 
Dim collage As String
 iname
="王五"
 sex
=""
 age
="34"
 com
="Google"
 collage
="清华大学"
 
Dim sql As String
 
If con.ConnectTo("ODBC数据源"Then
  
Msgbox "connect ok"
  qry.Sql
=|INSERT INTO PersonData(name,sex,age,collage,company)VALUES ('|+iname+|', '|+sex+|', '|+age+|', '|+collage+|','|+com+|');|
  result.Execute
 
Else
  
Msgbox "connect lost"
 
End If
 result.Close(DB_CLOSE)
 con.Disconnect
End Sub

转载于:https://www.cnblogs.com/haitunzhilian/archive/2009/10/17/1584863.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是俺学习参考别人有关NOTES与关系数据库互相操作的文档后更新的LOTUSSCRIPT程序代码 Set con=New ODBCConnection Set qry=New ODBCQuery Set rs=New ODBCResultSet Set qry.Connection = con Set rs.Query=qry Set ws=New notesuiworkspace Set uidoc=ws.currentdocument Dim s As New NotesSession Dim db As NotesDatabase Dim tempdoc As NotesDocument Dim StudentView As NotesView Dim j As Integer Set db=s.CurrentDatabase Set StudentView = db.GetView("($studentid)") Call con.ConnectTo("arice","","") qry.SQL="Select * From people" rs.execute rs.LastRow rs.CurrentRow = currentrow If Cstr(uidoc.fieldgettext("Saveoptions"))="0" Then '如果是新建表单 Set tempdoc=StudentView.GetDocumentByKey(Trim(uidoc.fieldgettext("Student_ID")),True)'判断是否在视图存在此学生id的表单 If Not tempdoc Is Nothing Then'如果存在 Messagebox "系统已经存在,请不要重复录入",,"警告" continue=False Exit Sub Else j = 0 For i = 1 To rs.NumRows rs.CurrentRow = i If Cstr(rs.GetValue("Cname")) = Cstr(uidoc.FieldGetText("Student_ID")) Then j = j + 1 End If Next '==============更新操作================================================== If j > 0 Then Call rs.SetValue("Student_id",Cstr(uidoc.FieldGetText("Student_ID"))) 'Messagebox "执行第一条语句" Call rs.SetValue("CName", Cstr(uidoc.fieldgettext("CName"))) 'Messagebox "执行第二条语句" Call rs.SetValue("EName", Cstr(uidoc.fieldgettext("EName"))) Call rs.SetValue("Address",Cstr(uidoc.fieldgettext("Address"))) Call rs.SetValue("Tel",Cstr(uidoc.fieldgettext("Tel"))) 'Messagebox "执行第五条语句" If rs.UpdateRow Then Messagebox "提交SQL数据库成功" 'Call uidoc.fieldsettext("Saveoptions","1") Call uidoc.Save(False,False) Else Messagebox "保存SQL数据库失败" Exit Sub End If Else Messagebox "是新增的文档,待定新增代码处理!" '====================新增保存代码========================= rs.AddRow Call rs.SetValue("Student_id",Cstr(uidoc.FieldGetText("Student_ID"))) Call rs.SetValue("CName", Cstr(uidoc.fieldgettext("CName"))) Call rs.SetValue("EName", Cstr(uidoc.fieldgettext("EName"))) Call rs.SetValue("Address",Cstr(uidoc.fieldgettext("Address"))) Call rs.SetValue("Tel",Cstr(uidoc.fieldgettext("Tel"))) If rs.UpdateRow Then Call uidoc.fieldsettext("Saveoptions","1") Call uidoc.Save(True,False) Messagebox "提交SQL数据库成功" Else Messagebox "保存SQL数据库失败" Exit Sub End If End If End If 'Messagebox "执行update条语句" Else Call rs.SetValue("Student_id",Cstr(uidoc.FieldGetText("Student_ID"))) 'Messagebox "执行第一条语句" Call rs.SetValue("CName", Cstr(uidoc.fieldgettext("CName"))) 'Messagebox "执行第二条语句" Call rs.SetValue("EName", Cstr(uidoc.fieldgettext("EName"))) Call rs.SetValue("Address",Cstr(uidoc.fieldgettext("Address"))) Call rs.SetValue("Tel",Cstr(uidoc.fieldgettext("Tel"))) 'Messagebox "执行第五条语句" If rs.UpdateRow Then Messagebox "提交SQL数据库成功" 'Call uidoc.fieldsettext("Saveoptions","1") Call uidoc.Save(True,False) Else Messagebox "保存SQL数据库失败" Exit Sub End If End If rs.Close(DB_CLOSE) con.Disconnect
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值