Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Lotusscript更新sql数据库_Sql_Lotus Notes_Lotus Domino_Lotusscript_Lotus - Fatal编程技术网

使用Lotusscript更新sql数据库

使用Lotusscript更新sql数据库,sql,lotus-notes,lotus-domino,lotusscript,lotus,Sql,Lotus Notes,Lotus Domino,Lotusscript,Lotus,我正试图通过lotusscript更新数据库中的行。我的数据库连接运行良好。但是result.update命令不起作用,查询也不会更新我的行。问题出在query result.updaterow中,因为它在其他任何地方都不会出错。 任何人都有办法让它发挥作用 选项公共 选项声明 UseLSX“*LSXODBC” 子初始化 将会话设置为新便笺会话 Dim db As NotesDatabase Dim dbcontacts As notes数据库 标注文档作为注释文档 Dim DOC联系人作为备注

我正试图通过lotusscript更新数据库中的行。我的数据库连接运行良好。但是result.update命令不起作用,查询也不会更新我的行。问题出在query result.updaterow中,因为它在其他任何地方都不会出错。 任何人都有办法让它发挥作用

选项公共
选项声明
UseLSX“*LSXODBC”
子初始化
将会话设置为新便笺会话
Dim db As NotesDatabase
Dim dbcontacts As notes数据库
标注文档作为注释文档
Dim DOC联系人作为备注文档
Dim CandidateView As NotesView
将联系人视图设置为备注视图
作为ODBCConnection的Dim连接
作为ODBCQuery的Dim查询
将结果设置为ODBCResultSet
昏暗的顾问
Set db=session.CurrentDatabase
设置连接=新的ODBCConnection
Set dbcontacts=session.GetDatabase(“,”names.nsf”)
Set query=New ODBCQuery
设置结果=新的ODBCResultSet
Set query.Connection=Connection
Set result.Query=Query
出错时继续下一步
设置CandidateView=db.GetView(“人员”)
设置ContactView=dbcontacts.GetView(“(PersonTestImport)”)
调用connection.ConnectTo(“数据源”、“用户名”、“密码”)
如果connection.IsConnected,则
Set doc=candidateView.GetFirstDocument
candidateView.AutoUpdate=False
而不是(doc什么都不是)
query.SQL=“从id为“+doc.can\u doc\u id(0)+”的用户中选择*”
结果,执行
如果result.IsResultSetAvailable,则
做
result.NextRow
namepers=文件管理员(0)
设置DocContact=ContactView.Getdocumentbykey(consultantref)
调用result.SetValue(“first_name”,DocContact.FirstName(0))
调用result.SetValue(“last_name”,DocContact.LastName(0))
调用result.SetValue(“电子邮件”,DocContact.MailAddress(0))
result.UpdateRow
循环直到结果。IsEndOfData
如果结束
Set doc=candidateview.GetNextDocument(doc)
温德
其他的
MsgBox“未连接”
如果结束
结果关闭(DB_关闭)
连接,断开
端接头

我尝试了sql查询更新,现在可以使用了:

Option Public
Option Declare

UseLSX "*LSXODBC"

Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dbcontacts As NotesDatabase

Dim doc As NotesDocument
Dim DocContact As NotesDocument

Dim CandidatView As NotesView
Dim ContactView As NotesView

Dim connection As ODBCConnection


Dim query As ODBCQuery
Dim result As ODBCResultSet


Dim consultantref As String

Set db = session.CurrentDatabase
Set connection = New ODBCConnection
Set dbcontacts= session.GetDatabase("", "names.nsf")


Set query = New ODBCQuery
Set result = New ODBCResultSet
Set query.Connection = connection
Set result.Query = query

On Error Resume Next

Set CandidatView=db.GetView( "Persons" )    
Set ContactView=dbcontacts.GetView( "(PersonsTestImport)" )

Call connection.ConnectTo("datasource", "username", "password")

If connection.IsConnected Then

Set doc=CandidatView.GetFirstDocument
CandidatView.AutoUpdate = False
While Not ( doc Is Nothing )
            namepers=doc.can_pers(0)
            Set DocContact=ContactView.Getdocumentbykey(consultantref) 

        Set DocContact=ContactView.Getdocumentbykey(consultantref)
        first_name_ref=DocContact.FirstName(0)
        last_name_ref=DocContact.LastName(0)
        email_ref=DocContact.MailAddress(0) 
        query.SQL="UPDATE users SET email_consult_ref='"+email_ref+"', first_name_consult_ref='"+first_name_ref+"',last_name_consult_ref='"+last_name_ref+"' where id_toucan='"+doc.can_doc_ID(0)+"'"

     result.Execute

    If result.IsResultSetAvailable Then

        Do
            result.NextRow
        Loop Until result.IsEndOfData   
    End If

    Set doc = CandidatView.GetNextDocument( doc )
Wend
End If
result.Close(DB_CLOSE)
connection.Disconnect

End Sub

您是否尝试添加一个on错误转到?要显示发生的潜在错误,请参见“是”,代理在domino服务器中打开,而我在服务器的日志文档中没有看到任何错误。代理工作到最后都很好,但不更新所选行。您在哪里设置consultantref?DocContact在这一点上是有效的文档吗?是的,我使用消息框查看我的3个值,它们都在那里。但是命令result.updaterow不执行此任务