次のようなSQLストアドプロシージャがあります。
CREATE PROCEDURE [dbo].[usp_Test_ListProcessSQL]
@LocationIDs as varchar(max) =''
AS
BEGIN
IF EXISTS(SELECT dbo.Locations.LocationID FROM dbo.Locations where LocationID in (@LocationIDs))
Return 0
ELSE
Return 1
END
次のように実行すると:
usp_Test_ListProcessSQL 2478
0を返します
しかし、VB 6コードから実行すると、1が返されます
Public Function TestListProcessSQL(lLocationId As String) As Integer
Dim cmd As ADODB.Command, prm As ADODB.Parameter
Set cmd = New ADODB.Command
cmd.ActiveConnection = cn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "usp_Test_ListProcessSQL_True"
With cmd
.Parameters.Append .CreateParameter("return_value", adInteger, adParamReturnValue)
.Parameters.Append .CreateParameter("@LocationIDs", adBSTR, adParamInput, , lLocationId)
End With
cmd.Execute
TestListProcessSQL = cmd.Parameters("return_value")
End Function
コードが間違った/異なる値を返す理由を提案してください