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
エラーがスローされます
サブクエリが複数の値を返しました。サブクエリが =、!=、<、<=、>、>= の後にある場合、またはサブクエリが式として使用されている場合、これは許可されません。ステートメントは終了されました。
私が理解できないのは、Access アプリでは正常に機能するのに、Management Studio または Web アプリ (PHP PDO) では機能しないのはなぜですか?