Vb6 ADODB.Command execute总是返回错误的值,即-1

Vb6 ADODB.Command execute总是返回错误的值,即-1,vb6,sybase,adodb,sqlcommand,Vb6,Sybase,Adodb,Sqlcommand,我找不到受以下查询影响的任何记录。在成功事务和失败事务中,它都返回-1值 Public Function fnModifyRecord() As Boolean Dim conTran As New ADODB.Connection Dim comTran As New ADODB.Command conTran.Errors.Clear On Error Resume Next conTran.Open "Provider=MSDataShape;OD

我找不到受以下查询影响的任何记录。在成功事务和失败事务中,它都返回-1值

Public Function fnModifyRecord() As Boolean

    Dim conTran As New ADODB.Connection
    Dim comTran As New ADODB.Command
    conTran.Errors.Clear
    On Error Resume Next
    conTran.Open "Provider=MSDataShape;ODBC;Database=" & strDatabase & ";UID=" & strUID & ";PWD=" & strPWD & ";DSN=" & strDSN & ""

    If conTran.Errors.Count > 0 Then
        MsgBox "FAILED TO CONNECT TO SERVER"
        interr = 0
        Do Until interr = conTran.Errors.Count
            MsgBox conTran.Errors.Item(interr).Description, vbCritical, strMsg
            interr = interr + 1
        Loop
        fnModifyRecord = False
        Exit Function
    End If

    '/***** Begin modification
    conTran.BeginTrans
    comTran.ActiveConnection = conTran
    comTran.CommandType = adCmdText
    comTran.CommandText = "Update Department set EmpName = 'Preeti' where EmpCode = 1101 and DeptName ='IT'"
    conTran.Errors.Clear
    On Error Resume Next

    comTran.Execute

    If conTran.Errors.Count > 0 Then
        conTran.RollbackTrans
        interr = 0
        Do Until interr = conTran.Errors.Count
            MsgBox conTran.Errors.Item(interr).Description, vbCritical, strMsg
            interr = interr + 1
        Loop
        conTran.Close
        fnModifyRecord = False
        Exit Function
    End If

    comTran.CommandText ="update Emptbl set EmpName ='Preeti' where EmpCode = 1101"

    conTran.Errors.Clear
    On Error Resume Next
    Dim r As Integer
    comTran.Execute r
    '/***** check the status of r it should be 1
    If r <> 1 Then
        MsgBox "ERROR ---- RECORD DID NOT GET UPDATED"
        conTran.RollbackTrans
        If conTran.Errors.Count > 0 Then
        interr = 0
        Do Until interr = conTran.Errors.Count
            MsgBox conTran.Errors.Item(interr).Description, vbCritical, strMsg
            interr = interr + 1
        Loop
        conTran.Close
        fnModifyRecord = False
        If conTran.State = 1 Then
                    conTran.Close
                    Set conTran = Nothing
                End If

        Exit Function
        End If
    End If

    If conTran.Errors.Count > 0 Then
        conTran.RollbackTrans
        interr = 0
        Do Until interr = conTran.Errors.Count
            MsgBox conTran.Errors.Item(interr).Description, vbCritical, strMsg
            interr = interr + 1
        Loop
        conTran.Close
        fnModifyRecord = False
        Exit Function
    End If

    conTran.CommitTrans
    conTran.Close
    fnModifyRecord = True
    Exit Function
End Function
公共函数fnModifyRecord()作为布尔值 Dim conTran作为新ADODB.连接 Dim comTran作为新的ADODB.命令 对错 出错时继续下一步 conTran.Open“Provider=MSDataShape;ODBC;Database=“&strDatabase&”UID=“&strUID&”PWD=“&strPWD&”DSN=“&strDSN&” 如果conTran.Errors.Count>0,则 MsgBox“无法连接到服务器” interr=0 直到interr=conTran.Errors.Count为止 MsgBox conTran.Errors.Item(interr).Description,vbCritical,strMsg 中断=中断+1 环 fnModifyRecord=False 退出功能 如果结束 '/****开始修改 康特恩·贝金特斯 comTran.ActiveConnection=contan comTran.CommandType=adCmdText comTran.CommandText=“更新部门设置EmpName='Preeti',其中EmpCode=1101和DeptName='IT'” 对错 出错时继续下一步 comTran.Execute 如果conTran.Errors.Count>0,则 反向翻转 interr=0 直到interr=conTran.Errors.Count为止 MsgBox conTran.Errors.Item(interr).Description,vbCritical,strMsg 中断=中断+1 环 关上 fnModifyRecord=False 退出功能 如果结束 comTran.CommandText=“更新Emptbl set EmpName='Preeti',其中EmpCode=1101” 对错 出错时继续下一步 作为整数的Dim r comTran.Execute r '/****检查r的状态它应该是1 如果r1那么 MsgBox“错误----记录未更新” 反向翻转 如果conTran.Errors.Count>0,则 interr=0 直到interr=conTran.Errors.Count为止 MsgBox conTran.Errors.Item(interr).Description,vbCritical,strMsg 中断=中断+1 环 关上 fnModifyRecord=False 如果合同状态=1,则 关上 设置控件=无 如果结束 退出功能 如果结束 如果结束 如果conTran.Errors.Count>0,则 反向翻转 interr=0 直到interr=conTran.Errors.Count为止 MsgBox conTran.Errors.Item(interr).Description,vbCritical,strMsg 中断=中断+1 环 关上 fnModifyRecord=False 退出功能 如果结束 合同委员会 关上 fnModifyRecord=True 退出功能 端函数
注意:最近我们将数据库(Sybase 15)的页面大小从2K更新为4K。

使用完整的命令对象和事务处理似乎有点愚蠢。您的确切代码和正在执行的查询是什么?在实际情况中,我正在事务中进行两次更新。两个不同表中的记录正在更新。好的,我的其余部分仍然有效。尝试向我们显示您的实际代码和结果查询。好的,完成检查。希望这一切正常。在
Emptbl
表中是否确实存在
EmpCode
字段设置为数值1101的记录?