毛を抜いてます!!
単純なスカラー関数を作成し、vb.net から実行して結果を取得しようとしていますが、SSMS で呼び出すと値 1 が返されますが、常にゼロとして表示されます。私が期待する。
関数は次のようになります。
Alter FUNCTION [dbo].[CheckParity]
(@test char(1) )
RETURNS int
AS
BEGIN
declare @result int
IF (SELECT SUM(REVENUEAMOUNT) FROM CommissionDetail WHERE RevenueType IN('P','S')) =
(SELECT SUM(SERVICEREVENUE + PRODUCTREVENUE) FROM SalesmanAttainment)
set @result = 1
else
set @result = 0
return @result
END
Web から vb コードを取得しました。
sql = "dbo.CheckSalesAttainmentParity"
Dim count As Integer
cnn = New OleDbConnection(conn.ConnectionString)
Try
cnn.Open()
cmd = New OleDbCommand(sql, cnn)
cmd.Parameters.Add("test", OleDbType.Integer)
cmd.Parameters("test").Direction = ParameterDirection.ReturnValue
cmd.ExecuteScalar()
count = cmd.Parameters("test").Value
cmd.Dispose()
cnn.Close()
sql = "dbo.CheckSalesAttainmentParity"
Dim count As Integer
cnn = New OleDbConnection(conn.ConnectionString)
Try
cnn.Open()
cmd = New OleDbCommand(sql, cnn)
cmd.Parameters.Add("test", OleDbType.Integer)
cmd.Parameters("test").Direction = ParameterDirection.ReturnValue
cmd.ExecuteScalar()
count = cmd.Parameters("test").Value
cmd.Dispose()
cnn.Close()
私は完全に困惑しています。私はすべてのアイデアをいただければ幸いです