PDA

View Full Version : مشکل با اجرای Stored Procedure در دستور select



mhamedm2008
شنبه 01 فروردین 1394, 23:28 عصر
با سلام
من یک پروسیجر با کدها زیر درست کردم

ALTER proc dlookupsql
as
begin
SELECT (nam_user) FROM user1 where (kod = 2325)
end

زمانیکه اجراش می کنم به جای اینکه یک نتیجه داشته باشه، همون 1 مورد تا اینقدر تکرار میکنه تا اررور بده
مشکل از کجاست ؟؟




(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)
Msg 217, Level 16, State 1, Procedure dlookupsql, Line 13
Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32).



اینو هم بگم که این تیبلم فقط 6 رکورد دار که با شرطی که گذاشتم فقط یک نتیجه باید نمایش بده

mhamedm2008
شنبه 01 فروردین 1394, 23:53 عصر
ممنون
حل شد
exec dlookupsql هم توی پروسیجر ذخیره شده بود

mhamedm2008
یک شنبه 02 فروردین 1394, 14:49 عصر
با سلام
من یک پروسیجر به صورت زیر نوشتم


ALTER proc [dbo].[dlookupsql]
@shart int,
@nam_sotoon varchar,
@dlook nvarchar(20) OUTPUT
as
begin
SET NOCOUNT ON
SELECT @dlook = (@nam_sotoon) FROM user1 where (kod = @shart)

end


حال وقتی با VBA اکسس باهاش ارتباط برقرار می کنم

login
Set cmd = New ADODB.Command

cmd.CommandText = "dlookupsql"
cmd.CommandType = adCmdStoredProc
cmd.ActiveConnection = Cnxn



cmd.Parameters.Append cmd.CreateParameter("nam_sotoon", adVarChar, adParamInput, 200, "nam_user")
cmd.Parameters.Append cmd.CreateParameter("shart", adInteger, adParamInput, 4, "2325")
cmd.Parameters.Append cmd.CreateParameter("dlook", adVarChar, adParamInputOutput, 255, 0)
cmd.Execute
Text7 = cmd.Parameters("dlook").Value
logout


ال مشکل اینه که پس از اجرا پیغام " error converting data type varchar to int" میده.
این بگم اگر پارامتر nam_sotoon را از فراخوانی و پروسیجر حذف کنم بدون مشکلی کار می کنه. ولی اگر این پارامتر دخیل باشه پیغام خطا میده
می خوام ببینم اصلا برای چی می خواد vchar رو تبدیل به int کنه؟؟؟