PDA

View Full Version : بررسي ركوردهاي فارسي در جستجو



vista2010
دوشنبه 16 اردیبهشت 1392, 18:54 عصر
سلام
وقتي مقدار ركوردي فارسي باشه،لازمه هنگام استفاده از كوئري جستجو،قبلش كاركتر N رو بذاريم...
وقتي بخام كوئريمو با متغير بصورت زير تعريف كنم،چه جوري اينو بهش بفهمونم؟
select * from tlogin where uid=@uid
دستور بالا فقط براي ركوردهايي كه انگليسي باشن،جواب ميده...اما اگه نام كاربري فردي فارسي باشه و بخاد لاگين كنه،اونو نميشناسه!!
ممنون ميشم استادان گرانقدر،كمك كنن....همه جوره تست كردم،اما جواب نگرفتم:ناراحت:

یوسف زالی
دوشنبه 16 اردیبهشت 1392, 19:04 عصر
این جوره تست کردید؟
set @uid = 'N' + @uid
select * from ...

انگار این مقوله تمومی نداره.
فکر می کنم باید msdn یک فصل کامل در مورد N و ایضا دو فصل دیگه در مورد طرز جستجو بذاره.

vista2010
دوشنبه 16 اردیبهشت 1392, 19:21 عصر
این جوره تست کردید؟



همه اين روشها رو تست كردم،ج نداده!!!
مثلا اين روش كلا خطا ميده و اجرا نميشه!

یوسف زالی
دوشنبه 16 اردیبهشت 1392, 19:41 عصر
برای N می باید ' های بیشتر بگذارید.
بی دقتی از من بود.
set @uid = '''N''' + @uid

vista2010
دوشنبه 16 اردیبهشت 1392, 19:58 عصر
شرمنده اگه سوالم ابتداييه!!!
من هميشه از دستورات sql تو C#‎و sp ها استفاده ميكنم،شايد برا همينه كه به جواب نرسيدم...
ميخام كوئري رو مستقيم تو خود sql اجرا كنم...
مثلا اين دستور تو sp جواب ميده،اما وقتي new query ميزنم و اجرا ميكنم،خطا ميده...دستوراتمو اشتباه مينويسم؟
delcare @u nvarchar(50)
SET @u + = ''N'' + @u
SELECT lid
FROM tlogin
WHERE (uid = @u)

یوسف زالی
دوشنبه 16 اردیبهشت 1392, 20:15 عصر
هر طرفش 3 تاست.
خوب نشمردید ها.

Set @uid = '''N''' + @uid

قبل = علامت + رو بردارید.

vista2010
دوشنبه 16 اردیبهشت 1392, 20:54 عصر
delcare @u nvarchar
SET @u = '''N''' + @u
SELECT * FROM tlogin
WHERE (uid = @u)

هنوز خطا ميده!!!!:ناراحت:

Msg 137, Level 15, State 2, Line 1
Must declare the scalar variable "@u".
Msg 137, Level 15, State 2, Line 2
Must declare the scalar variable "@u".
Msg 137, Level 15, State 2, Line 4
Must declare the scalar variable "@u".

یوسف زالی
دوشنبه 16 اردیبهشت 1392, 22:53 عصر
خب این uid@ کجا تعریف شده؟
شما دوست عزیز کمی در مورد مبانی نوشتن کوئری مطلب بخون.
اگر باز مشکل داشتی بیا.
موفق باشی.

vista2010
دوشنبه 16 اردیبهشت 1392, 23:32 عصر
خب این uid@ کجا تعریف شده؟
شما دوست عزیز کمی در مورد مبانی نوشتن کوئری مطلب بخون.
اگر باز مشکل داشتی بیا.
موفق باشی.

uid ازفيلدهاي جدولمه!!!
من هميشه از كوئريها برا كدنويسيهاي وب استفاده ميكنم..من كه گفتم سوالم ابتداييه!!!ببخشيد..
توsp جواب ميده،ميخاستم تو خود sql ازش استفاده كنم كه نشد...
ممنون..تاهمينجاخيلي كمكم كردين

ASKaffash
سه شنبه 17 اردیبهشت 1392, 07:30 صبح
سلام
برای حالت متغیر نیازی به N نیست فقط کافیست که متغیر و فیلد شما در جدول از نوع nVarChar باشند




سلام
وقتي مقدار ركوردي فارسي باشه،لازمه هنگام استفاده از كوئري جستجو،قبلش كاركتر N رو بذاريم...
وقتي بخام كوئريمو با متغير بصورت زير تعريف كنم،چه جوري اينو بهش بفهمونم؟
select * from tlogin where uid=@uid
دستور بالا فقط براي ركوردهايي كه انگليسي باشن،جواب ميده...اما اگه نام كاربري فردي فارسي باشه و بخاد لاگين كنه،اونو نميشناسه!!
ممنون ميشم استادان گرانقدر،كمك كنن....همه جوره تست كردم،اما جواب نگرفتم:ناراحت: