Lotusscript 与SQL交互基本示例(存储过程)

存储过程新增:

USE [MyTest]
GO

/****** Object:  StoredProcedure [dbo].[Doc2SqlForTest]    Script Date: 05/13/2013 13:40:03 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:  <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[Doc2SqlForTest]
  @Unid nvarchar(50),
  @CustomerNo nvarchar(50),
  @CustomerName varchar(30),
  @Address1 varchar(30),
  @Address2 varchar(30),
  @City varchar(20),
  @State char(2),
  @Zip varchar(10),
  @Contact varchar(25),
  @Phone varchar(15),
  @FedIDNo varchar(9),
  
  @success bit = 0 output
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

   INSERT INTO [MyTest].[dbo].[Customers]
           ([Unid]
           ,[CustomerNo]
           ,[CustomerName]
           ,[Address1]
           ,[Address2]
           ,[City]
           ,[State]
           ,[Zip]
           ,[Contact]
           ,[Phone]
           ,[FedIDNo])
     VALUES
           (@Unid,@CustomerNo,@CustomerName,@Address1,@Address2 ,@City,@State, @Zip,@Contact, @Phone,@FedIDNo)
     set @success=1
END

GO


 存储过程获取:

USE [MyTest]
GO

/****** Object:  StoredProcedure [dbo].[GetDocByUnid]    Script Date: 05/13/2013 13:41:14 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE proc [dbo].[GetDocByUnid]
 @unid nvarchar(32),
 @Success bit =0 output
 /**@returnVal nvarchar(max) output**/
 
as
select *
from Customers c
where c.Unid=@unid
set @success=1


GO


 

 

Lotus脚本代码:

 

Function GetSqlConnectString()
%REM
 返回连接数据库字符串
%END REM
 On Error GoTo ErrHandler
 Dim RetString As string
 
 RetString=|Provider=SQLOLEDB;|
 RetString=RetString & |Data Source=localhost\LOCALSQL;|
 RetString=RetString & |Uid=sa;|
 RetString=RetString & |Pwd=123456;|
 RetString=RetString & |Database=MyTest|
 
 GetSqlConnectString=RetString
 
 Exit Function
ErrHandler:
 MsgBox "Server:"+cdb.Server+",Database:"+cdb.FilePath+"LotusScript:LS_SQL"+",Function:GetSqlConnectString()"+_
 "Error:" & CStr(Error) + ",Code:" & CStr(Err) + ",Line:" & CStr(Erl)
End Function

 

Function OpenSqlConnect() As Variant
%REM
 创建数据连接对象实例
%END REM
 On Error GoTo ErrHandler

 If GSysSqlConnect Is Nothing Then
  Dim SqlConnectString As String
  SqlConnectString=GetSqlConnectString()
  
  If SqlConnectString=""Then
   Exit Function
  End If
  Set GSysSqlConnect=CreateObject("ADODB.Connection")
  GSysSqlConnect.ConnectionString=SqlConnectString
  GSysSqlConnect.ConnectionTimeout=30
  GSysSqlConnect.Open
  Set OpenSqlConnect=GSysSqlConnect
 End If

 If GSysSqlConnect Is Nothing Then
  MsgBox "Server:"+cdb.Server+",Database:"+cdb.FilePath+"LotusScript:LS_K2"+",Function:OpenSqlConnect()"+",连接数据库失败!"
 End If
 Exit Function
ErrHandler:
 Set GSysSqlConnect=Nothing
 MsgBox  "OpenSqlConnect"+ CStr(Error) + ",Code:" & CStr(Err) + ",Line:" & CStr(Erl)
End Function

 

%REM
 Function Doc2Sql
 Description: Comments for Function
%END REM
Function Doc2Sql(doc As NotesDocument)
 On Error GoTo Errorhandler
 Call OpenSqlConnect()
 Dim rs As Variant
 Dim sqlCommand As Variant
 Dim RetRecoredSet As Variant
 Dim defaultsql As String
 
 Set rs = CreateObject("ADODB.Recordset")
 Set SqlCommand=CreateObject("ADODB.command")
 Set SqlCommand.ActiveConnection=GSysSqlConnect
 SqlCommand.CommandType=adCmdStoredProc
 SqlCommand.CommandText = "dbo.Doc2SqlForTest"
 
 SqlCommand.Parameters.Append SqlCommand.CreateParameter("@unid",adVarWChar,AdParamInput,32,doc.Universalid)
 SqlCommand.Parameters.Append SqlCommand.CreateParameter("@CustomerNo",adVarWChar,AdParamInput,50,doc.CustomerNo(0))
 SqlCommand.Parameters.Append SqlCommand.CreateParameter("@CustomerName",adVarChar,AdParamInput,30,doc.CustomerName(0))
 SqlCommand.Parameters.Append SqlCommand.CreateParameter("@Address1",adVarChar,AdParamInput,30,doc.Address1(0))
 SqlCommand.Parameters.Append SqlCommand.CreateParameter("@Address2",adVarChar,AdParamInput,30,doc.Address2(0))
 SqlCommand.Parameters.Append SqlCommand.CreateParameter("@City",adVarChar,AdParamInput,20,doc.City(0))
 SqlCommand.Parameters.Append SqlCommand.CreateParameter("@State",adChar,AdParamInput,2,doc.State(0))
 SqlCommand.Parameters.Append SqlCommand.CreateParameter("@Zip",adVarChar,AdParamInput,10,doc.Zip(0))
 SqlCommand.Parameters.Append SqlCommand.CreateParameter("@Contact",adVarChar,AdParamInput,25,doc.Contact(0))
 SqlCommand.Parameters.Append SqlCommand.CreateParameter("@Phone",adVarChar,AdParamInput,15,doc.Phone(0))
 SqlCommand.Parameters.Append SqlCommand.CreateParameter("@FedIDNo",adVarChar,AdParamInput,9,doc.FedIDNo(0))
 SqlCommand.Parameters.Append SqlCommand.CreateParameter("@Success",adBoolean,adParamOutput,1)
 
 Call SqlCommand.Execute() 
 
 Dim success As Variant
 success=SqlCommand.Parameters("@success").value
 MsgBox "保存+" +success
  Exit Function
Errorhandler:
  MsgBox "ls_sql,Doc2Sql:"+Error +","+CStr(Erl)
End Function

 

 

%REM
 Function Sql2Doc
 Description: Comments for Function
%END REM
Function Sql2Doc(doc As NotesDocument)
 On Error GoTo Errorhandler
 Call OpenSqlConnect()
 Dim rs As Variant
 Dim sqlCommand As Variant
 Dim RetRecoredSet As Variant
 Dim defaultsql As String
 
 Set rs = CreateObject("ADODB.Recordset")
 Set SqlCommand=CreateObject("ADODB.command")
 Set SqlCommand.ActiveConnection=GSysSqlConnect
 SqlCommand.CommandType=adCmdStoredProc
 
 SqlCommand.CommandText = "dbo.GetDocByUnid"
 
 SqlCommand.Parameters.Append SqlCommand.CreateParameter("@unid",adVarWChar,AdParamInput,32,"461C8D734839A9B648257B67001CC9C9")
 SqlCommand.Parameters.Append SqlCommand.CreateParameter("@Success",adBoolean,adParamOutput,1)
 Set rs=SqlCommand.Execute()
 rs.MoveFirst
 If(Not rs.eof())Then
  MsgBox rs.Fields("City").name
  MsgBox rs.Fields("City").value
  rs.MoveNext
 End If
 Exit Function
Errorhandler:
 MsgBox "ls_sql,Sql2Doc:"+Error +","+CStr(Erl)
End Function

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值