0

次のような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

コードが間違った/異なる値を返す理由を提案してください

4

0 に答える 0