PDA

نسخه کامل مشاهده نسخه کامل : استفاده از دستور select????



نازنین زهرا
19-05-2009, 11:04
در sql 2005
وقتی می خواهیم به فارسی selectکنیم یا از like برای جستجوی عبارت فارسی استفاده کنم
نام ویژگی ها را برمی گرداند ولی تاپل ها که حاوی اطلاعات هستند را بر نمی گرداند ولی وقتی ا ز selectدر عبارت انگلیسی جستجو می کنم اطلا عات را به درستی برمی گرداند
من باید چی کار کنم تا اطلاعات فارسی را هم بتونم با دستور selectباز یابی کنم
متشکرم

_H2_
20-05-2009, 00:39
سلام
1- برای ذخیره متون فارسی از nchar و nvarchar و (nvarchar(MAX و ntext استفاده کنید.
2- تا حد امکان در انتقام پارامترهای داخل برنامه به sqlserver و سایر بانکاهای اطلاعاتی از روش پارامتری استفاده کنید و خودتان با جمع string دستور sql نسازید.
3- در صورت ساخت string دستورات، قبل از متون یونیکد و فارسی از یک N استفاده کنید

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

نازنین زهرا
20-05-2009, 05:17
متشکرم ولی من همیشه برای اطلاعات فارسی ام از nchar استفاده می کنم
از فرم دستور شما نیز استفاده کردهام ولی جواب نمی دهد من این دستور روی 10 سیستم دیگه هم امتحان کردم ولی جواب نداد

نازنین زهرا
20-05-2009, 06:57
]QUARYشما درست بود من از پرانتز استفاده نمی کردم حالا اگر بخواهم از دستور SELECT استفاده کنم تا اطلاعات را باز گرداند باید چه کار کنم مثلا چنین دستوری
select sname from s where city='تهران '

عــــلی
20-05-2009, 11:54
با سلام.خسته نباشید.
میتونید برای بازگرداندن از کد زیر استفاده کنید یا Refresh کنید.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدیا اگه میخواین فقط city هایی که برابر با 'تهران' رو نمایش بدین از کد زیر استفاده کنید:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

نازنین زهرا
20-05-2009, 15:48
با سلام.خسته نباشید.
میتونید برای بازگرداندن از کد زیر استفاده کنید یا Refresh کنید.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدیا اگه میخواین فقط city هایی که برابر با 'تهران' رو نمایش بدین از کد زیر استفاده کنید:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



من خودم می دانم که quary دستور select این است
ولی با این که متغیر ها از نوع nchar تعریف شده اند به خاطر این که اطلاعات تاپل ها فارسی است در sql 2005 جواب نمی دهد فقط نام ویژگی ها رابرمی گرداند

shalineh
20-05-2009, 15:57
2- تا حد امکان در انتقام پارامترهای داخل برنامه به sqlserver و سایر بانکاهای اطلاعاتی از روش پارامتری استفاده کنید و خودتان با جمع string دستور sql نسازید.


نکته بسیار مهمی می باشد. با این روش هیچ اروری دریافت نخواهید کرد. این رو تجربه بهم ثابت کرده است.

عــــلی
20-05-2009, 18:01
من خودم می دانم که quary دستور select این است
ولی با این که متغیر ها از نوع nchar تعریف شده اند به خاطر این که اطلاعات تاپل ها فارسی است در sql 2005 جواب نمی دهد فقط نام ویژگی ها رابرمی گرداند

میشه یه پرینت از جدول و Quary بگیرین و بزارید ببینم؟
من همین الان این چیزایی که گفتین کردم و لی همش کار کرد.
یه جدول ساختم همه column ها رو برابر nchar قرار دادم.

و تو Quary تایپ کردم:



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


جواب داد.

_H2_
20-05-2009, 23:36
سلام
دلیلی برای کار نکردن وجود ندارد، یک جای کارتان ایراد دارد و همینطوری چشم بسته، نمیتوان گفت کجا !
باید اطلاعات بیشتری بدهید.
اگر میتوانید یک بانک نمونه mdf ساخته و آپلود کنید.

نازنین زهرا
21-05-2009, 05:17
شاید حق با شما باشد ولی توی دانشگاه استادمون این تمرین را روی 10 کامپیوتر انجام داد نتوانست جوابی بدست اورد وبعد این تمرین را به عهده خودمان گذاشت منم تمام راه ها را رفتم ولی به جواب نرسیدم

نازنین زهرا
21-05-2009, 05:20
اپلود ؟
از انجام این کار شرمنده ام
چون بلد نیستم
به هر حال متشکرم

_H2_
21-05-2009, 23:08
سلام
برای آپلود کافی است در یک سایت میزبان (مثل rapidshare.com) فایل خود را اپلود کنید و لینکش را اینجا بدهید.

لطفاً نام دقیق فیلدها و نوع کامل آنها و دستور کامل sql و چگونگی مراحل تست و... را بیان کنید.

نازنین زهرا
22-05-2009, 14:07
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
این ادرس فایلم که ازش یک پک اپ گرفتم اطلاعات در چهار جدول s,p,j,spj

نازنین زهرا
22-05-2009, 14:20
جدول s شامل سه ویژگی به نام های s#,sname,cityمی باشد به خاطر این که فارسی select جواب نداد اطلاعات ,ویژگی cityرا en کردم حالا من اگر بخواهم روی جدول s تاپل های را برگردانم که sname='البرز ' باشد من تا اون جایی که می دونم باید چنین quary نوشت
select *
from s
where sname='البرز'
وقتی اجرا می کنم فقط نام ویژگی های s#,sname,city را برمی گرداند و تاپلی که حاوی sname=البرز باشد را برای من برنمی گرداند ولی اگر من البرز را به انگلیسی بنویسم تاپل های خواسته شده را برمی گرداند متشکر می شوم اگر مشکل من را حل کنید

نازنین زهرا
22-05-2009, 14:24
CREATE TABLE s(
s#] [char](10) NOT NULL,
sname] [nchar](30) NULL,
city] [nchar](20) NULL,
(s#) PRIMARY KEY
(
این ام نوع هر ویژگی

عــــلی
22-05-2009, 17:42
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
این ادرس فایلم که ازش یک پک اپ گرفتم اطلاعات در چهار جدول s,p,j,spj

سلام، ببخشید میشه بگین این فایل .Bak با چی باز میشه؟مرسی

_H2_
23-05-2009, 00:08
سلام

جدول s شامل سه ویژگی به نام های s#,sname,cityمی باشد به خاطر این که فارسی select جواب نداد اطلاعات ,ویژگی cityرا en کردم حالا من اگر بخواهم روی جدول s تاپل های را برگردانم که sname='البرز ' باشد من تا اون جایی که می دونم باید چنین quary نوشت
select*
from s
where sname='البرز'
وقتی اجرا می کنم فقط نام ویژگی های s#,sname,city را برمی گرداند و تاپلی که حاوی sname=البرز باشد را برای من برنمی گرداند ولی اگر من البرز را به انگلیسی بنویسم تاپل های خواسته شده را برمی گرداند متشکر می شوم اگر مشکل من را حل کنید

ذوست عزیز، متاسفانه شما دقت کافی ندارید.
من در همان اولین پستم در این تاپیک (پست 2) و بند 3 گفتم باید از N استفاده کنید !!!! نمیدانم چرا امتحان هم نکردید!
درست است دستور زیر جوابی نمیدهد.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ولی دستور زیر جواب خواهد داد.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

در نهایت پیشنهاد میکنم نامهای غیر استاندارد # دار را rename کنید به نام های منطقی تر !!!

-----


ببخشید میشه بگین این فایل .Bak با چی باز میشه؟
با SQLServer، کافی است فرمان زیر را اجرا کنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشید.

نازنین زهرا
23-05-2009, 13:12
مشکلات من حل شد من این کار قبلا تکرار کرده بودم ولی یکم بی دقتی
واقعا متشکرم