触发器代码:
ALTER trigger [dbo].[AuditTrigger] on [dbo].[KISStockIn]
after update
as
if update(StateInt)
begin
declare @KISBillNo as varchar(100)
select @KISBillNo = KISBillNo from inserted --定义审核表单号
declare @acctID as int
select @acctID = 13
declare @acctname as varchar(200)
select @acctname = 'administrator'
declare @acctPW as int
select @acctPW = ''
declare @TransType as int
select @TransType = (select FTranType from AIS201407281401391.dbo.ICStockBill where FBillNo = @KISBillNo)
declare @InterID as int
select @InterID = (select FInterID from AIS201407281401391.dbo.ICStockBill where FBillNo = @KISBillNo)
declare @CheckBill as int
declare @object as int
declare @re as int
declare @errMsg as varchar(200)
declare @src varchar(255), @desc varchar(255) -- 定义调用函数所需参数
if exists(select * from KISStockIn where KISBillNo = @KISBillNo and StateInt != 3)
begin
print('订单还在执行,无法通过审核')
end
else
begin
exec @errMsg=sp_OACreate 'LYAUDIT.check', @object out-- 创建调用对象
if ( @errMsg != 0 ) -- 创建失败,进行错误处理
begin
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@errMsg), Source=@src, Description=@desc
RETURN
end
else
begin
exec @errMsg = sp_OAMethod @object,'CheckBill' , @re out, @acctID,@acctname,@acctPW,@TransType,@InterID -- 调用对象内方法
if ( @errMsg != 0 ) --审核出现错误,进行错误处理
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@errMsg), Source=@src, Description=@desc
RETURN
if @errMsg = 0
begin
print '审核成功'
end
end
end
end
dll组件代码:
Public Function CheckBill(ByVal acctID As Integer, ByVal acctname As String, ByVal acctPW As Long, ByVal TransType As Integer, ByVal InterID As Integer, ByVal errMsg As String) As Integer
Dim oLoginNoUI As New KDLogin.NoUILogin
Dim i As Long
i = oLoginNoUI.Login("gl", "", acctID, "acctname", "acctPW")
' MsgBox i
MsgBox oLoginNoUI.PropsString
' Dim o As New KdSvrmgr.AcctMgr
' Set t = o.GetAccountList
Dim chkBill As New KEE_K3MCheckBill.CheckNow
Dim oPara As New KFO.Dictionary
oPara("PropString") = oLoginNoUI.PropsString
oPara("TransType") = TransType
oPara("InterID") = InterID
oPara("CheckerID") = "16394"
oPara("CheckSwitch") = 0
'oPara("ReCheck") = dctInfo("ReCheck")
oPara("ReCheck") = 2
oPara("ReturnCode") = 0
oPara("OperateType") = 0
oPara("ReturnString") = ""
oPara("ReturnString2") = ""
oPara("CheckDate") = Now
oPara("MultiCheckLevel") = 0
oPara("NoUseMultiCheck") = True
oPara("OperateCode") = 1
Set oPara("vectItemInfo") = New KFO.Vector
oPara("SaveFirstTime") = True
chkBill.CheckBill oPara
Dim ret As New KFO.Dictionary
ret("ReturnCode") = oPara("ReturnCode")
ret("ReturnString") = oPara("ReturnString")
Set chkBill = Nothing: Set oPara = Nothing: Set ret = Nothing
errMsg = oPara("ReturnString")
CheckBill = oPara("ReturnCode")
End Function
问题:触发器被触发后一直执行,没有返回结果。
很急(本人小白),求大神帮忙解决一下,万分感谢!