痛苦啊!大家快点来救救我啊,我们做的系统差不多全部崩溃了! !
我们做的系统,执行插入语句都用一个函数来做,执行完毕后返回执行插入的@@identity
整个系统差不多全部用上了.但是现在的情况是,返不回@@identity
那就意味着,整个系统不能用,我们在本地执行是一点问题都没有的,放到客户的服务器上问题就来了.
系统用ASP+SQL SERVER做的..系统放在一台服务器上,,数据库放在另一台服务器上.
以下是我用的函数,,希望大家帮帮忙呀,非常急!!
'------------------------------------------------------------------------------------
'Function Name: executeInsert(strSql)
'Parameter : strSql as varchar SQL插入语句
'
'Return : 返回公司 INENDITY
'Description : 执行插入语句,返回新插入的INENDITY
'Modify Time : 2005-4-19
'-------------------------------------------------------------------------------------
Function executeInsert(strSql)
Dim adCmdStoredProc
Dim adParaminput
Dim adParamOutput
Dim adChar
Dim adInteger
Dim adVarChar
Dim CmdCart '存储过程
Dim PrmCart '存储过程参 数
adCmdStoredProc=4
adParaminput=1
adParamOutput=2
adInteger=3
adChar=129
adVarChar=200
set CmdCart=server.CreateObject("ADODB.Command")
CmdCart.ActiveConnection = conn
CmdCart.CommandText = "pr_ExecuteInsert" '存储过程名
CmdCart.CommandType=4 '4 is a procedure type value adCmdStoredProcedure
'创建 Parameter 对象
Set PrmCart = CmdCart.CreateParameter("@sqlString",adVarChar,adParamInput,10000,strSql)
CmdCart.Parameters.Append PrmCart
Set PrmCart = CmdCart.CreateParameter("@id",adInteger,adParamOutput,255)
CmdCart.Parameters.Append PrmCart
Set PrmCart = CmdCart.CreateParameter("@ExecutStateStr",adVarChar,adParamOutput,255)
CmdCart.Parameters.Append PrmCart
CmdCart.execute
If Trim(CmdCart("@ExecutStateStr"))="执行失败" Then
setErrorMsg "执行失败,所有操作已经取消,请重新操作!" '检查错误
End If
'取得ID号
If trim(CmdCart("@id"))<>"" or Not IsNull(CmdCart("@id")) Then
executeInsert=trim(CmdCart("@id"))
End If
End Function
存储过程是:
ALTER procedure pr_ExecuteInsert
@sqlString ntext,
@id int output,
@ExecutStateStr varchar(255) output
as
begin
--执行并取唯一编号
--执行插入
execute sp_executesql @sqlString
SET @id=@@identity
--判断是否执行成功
If @@error=0
begin
Commit Tran
set @ExecutStateStr='执行成功'
end
else
begin
Rollback Tran
set @ExecutStateStr='执行失败'
end
end
大家快点来救救我啊!