首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

哪位高手有bs下,使用ado把notes数据通过代理导入到sql中的代码

2012-03-11 
谁有bs下,使用ado把notes数据通过代理导入到sql中的代码?如题:问:用定时代理使用ado把notes数据通过代理导

谁有bs下,使用ado把notes数据通过代理导入到sql中的代码?
如题:
问:用定时代理使用ado把notes数据通过代理导入到sql中的效率如何,与ls,还有java代码比较如何?

[解决办法]
能用ADO当然用ADO最好了,.net这些不都是用的ado吗,因为是直接调用windows的东西,所以效率也是比较高的,比Java高多了。不过也是有限制的,就是如果你是用在BS的话,服务器必须是windows平台的,这样才能用ADO。
示例代码如下:

VB code
m_conString = "driver={SQL Server};server="+server+";uid="+uid+";pwd="+psw+";database="+db                    Set m_con = CreateObject("ADODB.Connection")        If m_conString = "" Then             Msgbox "Please provide with the connection string!",0+16,"Lotus Notes"            Exit Sub                    End If        m_con.ConnectionString = m_conString        Call m_con.open        If m_con Is Nothing Then             Msgbox "Connection failed!",0+16,"Lotus Notes"            Exit Sub        End If        If m_con.state = 0 Then             Msgbox "Connection failed!",0+16,"Lotus Notes"            Exit Sub        End If
[解决办法]
Dim vConn As Variant'数据库的adodb链接。
Dim strSql As String

Set vConn=FMJGetConn()'createobject("ADODB.CONNECTION")
'vConn.connectionString="Provider=SQLOLEDB;Data Source=21.8.143.248;Initial Catalog=Notes; User ID=Notes;Password=Notes;"'定义连接字符串
Call vConn.open
vConn.BeginTrans

Dim strUnid As String
Dim strTitle As String
Dim strDepartment As String
Dim strFlowNo As String
Dim strFileNo As String
Dim strArchiveUser As String
Dim strAuthor As String
Dim strSubmitTime As String
Dim strCreateTime As String
Dim strOthers As String
Dim strDxl As String

Set nCurUser=New NotesName(session.UserName)
Set nAuthor=New NotesName(docParent.originalAuthor(0))

strUnid=docParent.unid(0)
strTitle=docParent.title(0)
strDepartment=docParent.department(0)
strFlowNo=docParent.snFlow(0)
strFileNo=docParent.sn(0)
strArchiveUser=nCurUser.Abbreviated
strAuthor=nAuthor.Abbreviated
strSubmitTime=docParent.timesubmit(0)
strCreateTime=docParent.Created
strDxl=Replace(stream.ReadText(),"'","''")
strSql="INSERT INTO [Notes].[dbo].[archiveDoc]([unid],[title],[department],[flowNo],[fileNo],[archiveUser],[author],[submitTime],[createTime],[others],[dxl]) VALUES" &_
"('" & strUnid & "'" &_
",'" & strTitle & "'" &_
",'" & strDepartment & "'" &_
",'" & strFlowNo & "'" &_
",'" & strFileNo & "'" &_
",'" & strArchiveUser & "'" &_
",'" & strAuthor & "'" &_
",'" & strSubmitTime & "'" &_
",'" & strCreateTime & "'" &_
",'" & strOthers & "'" &_
",'" & strDxl & "')"

vConn.execute strSql
vConn.CommitTrans
Call vConn.close
Set vConn=Nothing



Function FMJGetConn() As Variant
On Error Goto e
Dim session As New NotesSession
Dim db As NotesDatabase
Dim vConn As Variant'数据库的adodb链接。
Dim doc As NotesDocument
Set vConn=createobject("ADODB.CONNECTION")
Set db=session.CurrentDatabase
Set doc=db.GetProfileDocument("profile")
vConn.connectionString=doc.connString(0)'定义连接字符串
Set FMJGetConn=vConn
Exit Function
e:
Dim fmjError As String
fmjError = "script库-common-FMJGetConn" & Erl & ":" & Error


Call FMJSendErrToAdmin("",fmjError)
Exit Function
End Function


sql连接字符串格式:
"Provider=SQLOLEDB;Data Source=21.8.143.248;Initial Catalog=Notes; User ID=****;Password=****;"


PS:经过本人很多次的测试,这种方式不太稳定,要是在b/s下,用jdbc是比较好的方式。

热点排行