نمایش نتایج 1 تا 12 از 12

نام تاپیک: مشکل با collation ها و "ی"

  1. #1
    کاربر دائمی آواتار behnam-s
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    CPU
    پست
    208

    Question مشکل با collation ها و "ی" (کمک کنیییید)!!!!!!!!!

    من می خوام یه تو یه فیلد از نوع nvarchar جستجو انجام بدم تو sql server 2005 و از دستور LIKE استفاده می کنم ولی وقتی کلمه مورد جستجو حرف 'ی' توش بکار می ره نتیجه ای بر نمی گردونه! چیکار باید بکنم؟
    آخرین ویرایش به وسیله behnam-s : سه شنبه 13 مرداد 1388 در 13:18 عصر

  2. #2

    نقل قول: مشکل با collation ها و "ی"

    نقل قول نوشته شده توسط behnam-s مشاهده تاپیک
    من می خوام یه تو یه فیلد از نوع nvarchar جستجو انجام بدم تو sql server 2005 و از دستور LIKE استفاده می کنم ولی وقتی کلمه مورد جستجو حرف 'ی' توش بکار می ره نتیجه ای بر نمی گردونه! چیکار باید بکنم؟
    سلام من هم با همچین مشکلی بر خوردم و یادم نیست چطوری حلش کردم

  3. #3

    نقل قول: مشکل با collation ها و "ی"

    ی و ک = مکافات، مصیبت.
    ببینید، ما یه "ی" داریم و یه "ي". همینطور یه "ک" داریم و یه "ك". هر کدوم اینها کد جداگانه ای دارند. ممکنه دلیل این اتفاق این باشه که شما در هنگام وارد کردن اطلاعات از فونتی استفاده کردید که از یکی از این "ی" ها استفاده می کنه، موقع کوئری گرفتن از فونتی استفاده می کنید که "ی" متفاوت داره. این کار هم دو راه داره : یکی اینکه همیشه از یک فونت ثابت مثل تاهوما هم برای ورود داده و هم برای پرس و جو استفاده کنید یا اینکه یه کد بنویسید که کاربر هر کدوم از این دو تا "ی" رو وارد کرد خودکار به "ی" مورد نظر شما تغییر کنه. تمام این صحبت ها در رابطه با کاف هم صادقه.
    نا گفته پیداست که پیش از همه اینها باید از صحت کوئری و درستی collation اطمینان حاصل کرد.

  4. #4

    نقل قول: مشکل با collation ها و "ی"

    کد اسکی این دو 'ی' با هم فرق می کند, شما باید در هنگام ورود و جستجوی اطلاعات کد اسکی فیلد وارد شده را پیدا کرد و کد اسکی هر دو را به یکی تبدیل کرد - توجه شود که این موضوع هم در هنگام ورود اطلاعات و هم در هنگام جستجو انجام شود

  5. #5
    کاربر دائمی آواتار behnam-s
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    CPU
    پست
    208

    نقل قول: مشکل با collation ها و "ی"

    نقل قول نوشته شده توسط بهنام بهمنی مشاهده تاپیک
    کد اسکی این دو 'ی' با هم فرق می کند, شما باید در هنگام ورود و جستجوی اطلاعات کد اسکی فیلد وارد شده را پیدا کرد و کد اسکی هر دو را به یکی تبدیل کرد - توجه شود که این موضوع هم در هنگام ورود اطلاعات و هم در هنگام جستجو انجام شود
    من اطلاعات رو تو خود sql server وارد می کنم و همون جا کوئری می گیرم بازم مشکل هست ، در ضمن به همه "ی" هایی که با دستور charmap اومد امتحان کردم بازم حل نشد . می تونید بگید بهترین collation برای زبان فارسی چیه؟
    چون Arabic های زیادی هست کدو رو باید استفاده کنم؟

    این هم کوئری ساده شده من:

    SELECT     fname, lname, pname
    FROM dbo.karamuz
    WHERE (fname LIKE '%علی%')

  6. #6

    نقل قول: مشکل با collation ها و "ی"

    از کد زیر واسه یکسان کردن مقادیر عربی و فارسی استفاده بکنید

    declare @tbl nvarchar(max)
    ,@col nvarchar(max)
    declare tbl_cursor cursor
    for
    select
    a.name,
    b.name
    from
    sysobjects a,
    syscolumns b
    where a.id=b.id
    and a.xtype='u'
    and b.xtype=231
    open tbl_cursor
    fetch next from tbl_cursor into @tbl,@col
    while(@@FETCH_STATUS=0)
    begin
    exec('update ['+@tbl+'] set ['+@col+']=replace('+@col+',nchar(1111),nchar(2222))')
    fetch next from tbl_cursor into @tbl,@col
    end
    close tbl_cursor


    منبع

  7. #7

    نقل قول: مشکل با collation ها و "ی"

    من همیشه arabic_ci_as رو انتخاب می کنم که به معنی عربی-غیر حساس به کوچک وبزرگ-نزولی می باشد

  8. #8
    کاربر دائمی آواتار behnam-s
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    CPU
    پست
    208

    نقل قول: مشکل با collation ها و "ی"

    ممنون از کدتون ولی فایده ای نداره ، query اجرا شد ولی تاثیری نداشت

  9. #9

    نقل قول: مشکل با collation ها و "ی"

    نقل قول نوشته شده توسط behnam-s مشاهده تاپیک
    ممنون از کدتون ولی فایده ای نداره ، query اجرا شد ولی تاثیری نداشت
    خب حتما فیلدهایی مقداری از کاراکترهای عربی و فارسی داشته باشن، نیست، وگرنه اسکریپت نوشته شده در نهایت دقت و صحت هستش.

  10. #10
    کاربر دائمی آواتار behnam-s
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    CPU
    پست
    208

    نقل قول: مشکل با collation ها و "ی"

    نقل قول نوشته شده توسط meysam_pro مشاهده تاپیک
    خب حتما فیلدهایی مقداری از کاراکترهای عربی و فارسی داشته باشن، نیست، وگرنه اسکریپت نوشته شده در نهایت دقت و صحت هستش.
    از اسکریپتی که نوشتین واقعا ممنونم ولی مشکل من هنوز حل نشده
    از دوستان خواهش می کنم اگه راهی به نظرشون می رسه دریغ نکنند

  11. #11
    کاربر دائمی آواتار behnam-s
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    CPU
    پست
    208

    نقل قول: مشکل با collation ها و "ی"

    کسی می دونه چه باید بکنم؟
    برای تحویل پروژه 5 روز دیگه بیشتر وقت ندارم!

  12. #12

    نقل قول: مشکل با collation ها و "ی"

    سلام دوست عزیزم،
    به نظرم دوستان راهنمایی مناسب رو ارائه دادند. با دستور Update مقادیر درست رو جایگزین کنید (مثلا با تابع replace) و موقع ورود اطلاعات و همچنین جستجو از N استفاه کنید:

    select * from mytable where mycol=N'تست'

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •