PDA

View Full Version : اشکال این procedure کجاست ؟؟



elahe software
یک شنبه 19 آذر 1391, 21:11 عصر
من این procedure نوشتم ، ولی با ورودی فارسی کار نمی کنه مگر اینکه قبل از پارامتر N بذارم .
دیتا بیسمو فارسی کردم و procedure های دیگه هم که ورودی فارسی داشتن اجرا می کنن و مشکلی ندارن .



ALTER procedure [dbo].[search]
@TypeRoom nvarchar(50),@stage int,@hay int
as begin

select NumRoom from Room where stage=@stage and hay=@hay and TypeRoom=@TypeRoom

END


execute search 'معمولی',2,1

حمیدرضاصادقیان
یک شنبه 19 آذر 1391, 21:38 عصر
سلام
خوب باید قبل از رشته از N استفاده کنید که رشته ارسالی به صورت Unicode ارسال شود.

elahe software
دوشنبه 20 آذر 1391, 17:39 عصر
خوب من ورودی هام رو از تو کد سی شارپ میفرستم. اونجا کجاش N رو بذارم؟
آخه procedure های دیگه من واسه همین دیتا بیس که ورودی فارسی میگیره درست جواب میده!!

Arash_janusV3
دوشنبه 20 آذر 1391, 17:43 عصر
فبل از پارامتر باید N بگذاری

string s = "N'" + NameParameter + "'"

Reza_Yarahmadi
سه شنبه 21 آذر 1391, 12:00 عصر
خوب من ورودی هام رو از تو کد سی شارپ میفرستم. اونجا کجاش N رو بذارم؟
آخه procedure های دیگه من واسه همین دیتا بیس که ورودی فارسی میگیره درست جواب میده!!
اگه از سمت برنامه بصورت پارامتر ارسال بشه و نوع پارامتر رو فرضا Nvarchar بگیرید SQL Server کار یونیکد کردنش رو انجام میده. ولی وقتی بصورت دستی از رشته یونیکد استفاده میکنید کار تبدیلش (اضافه کردن N) باید خودتون انجام بدید.