ورود

View Full Version : کمک : چگونه مقدار برگشتی فرمان EXEC را دریافت کنیم



mahmood744
دوشنبه 03 مهر 1391, 11:58 صبح
سلام
دوستان لطفا کمکم کنید :گریه:
کد زیر جواب نمیده و مقدار return همیشه برابر با صفر است
چگونه مقدار برگشتی از فرمان EXEC را دریافت کنم



CREATE PROCEDURE [dbo].[MaxTabel] @TableName varchar(50), @FieldName varchar(50) AS
DECLARE @SQL varchar(500)
DECLARE @MaxCode int
SET @SQL = 'DECLARE @MaxCode int SELECT @MaxCode = MAX(' + @FieldName + ') FROM ' + @TableName
EXECUTE(@SQL)
RETURN @MaxCode



هر چی فکر می کنم نمی فهمم چرا ؟
با تشکر از راهنمایتان

hamidkh
دوشنبه 03 مهر 1391, 13:04 عصر
سلام
اگر این قسمت رو اینطور بنویسین مشکلتون حل نمیشه؟

SET @SQL = 'SELECT MAX(' + @FieldName + ') FROM ' + @TableName

mahmood744
دوشنبه 03 مهر 1391, 13:57 عصر
دوست عزيز من مي خواهم مقدار برگشتي به صورت return از تابع برگرده که بتونه برابر با يک متغيير قرار بدم
با روش شما هم مقدار برگشتي تابع صفر است !


DECLARE @RC int
DECLARE @TableName varchar(50)
DECLARE @FieldName varchar(50)
-- Set parameter values
Set @TableName = 'Sanadindex'
Set @FieldName = 'Num_Sanad'
EXEC @RC = [dbo].[SP_MaxTabel] @TableName, @FieldName
print @RC

مقداري که چاپ ميشه هميشه صفر است ؟

mahmood744
دوشنبه 03 مهر 1391, 14:29 عصر
این جوابی است که خودم پیدا کردم :چشمک:



CREATE PROCEDURE [dbo].[SP_MaxTabel] @TableName varchar(50), @FieldName varchar(50) AS
DECLARE @SQL NVARCHAR(500)
DECLARE @MaxCode bigint
SET @SQL = 'SELECT @MaxCode=MAX(' + @FieldName + ') FROM ' + @TableName
EXECUTE sp_executesql @SQL , N'@MaxCode bigint output' ,@MaxCode output
RETURN @MaxCode
GO

ASKaffash
سه شنبه 04 مهر 1391, 09:35 صبح
سلام
این روش به شما جواب درست میدهد ؟

crystalline
چهارشنبه 12 مهر 1391, 14:59 عصر
روال شما باید خروجی غیر مستقیم داشته باشه تا بتونین از خروجی استفاده کنید