我正在将基于MSAccess的应用程序(+ VB代码)转换为Web应用程序。数据库在此过程中保持不变,此访问应用程序使用了少量存储过程。
下面的代码执行存储过程。
Dim prmJ_YearSeq_pk As ADODB.Parameter
Set cmd1 = New ADODB.Command
cmd1.ActiveConnection = CurrentProject.Connection
cmd1.CommandType = adCmdStoredProc
cmd1.CommandText = "sp_delete_from_t_Job_and_t_Report"
Set prmJ_YearSeq_pk =
cmd1.CreateParameter("@J_YearSeq_pk", adInteger, adParamInput)
cmd1.Parameters.Append prmJ_YearSeq_pk
prmJ_YearSeq_pk.Value = Me.J_YearSeq_pk
cmd1.Execute
现在从SQL Management Studio执行相同的存储过程
DECLARE @return_value int
EXEC @return_value = [dbo].[sp_delete_from_t_Job_and_t_Report]
@J_YearSeq_pk = 20110001
SELECT 'Return Value' = @return_value
它会抛出错误
子查询返回的值超过1。当子查询遵循=,!=,<,< =,>,> =或子查询用作表达式时,不允许这样做。 声明已经终止。
我不明白的是,为什么它在Access App中运行得很好,但在Management Studio或我的Web应用程序(PHP PDO)中却没有?