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

نام تاپیک: مشکل unicode و nvarchar در دلفی

  1. #1

    مشکل unicode و nvarchar در دلفی

    با سلام
    تا جایی که گشتم چیزی خاصی پیدا نکردم پس مجبور شدم سوال کنم :
    من از پایگاه داده sql server 2008 r2 sp2 express edition استفاده می کنم و connection string من این است :
    Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=aaa;Data Source=test-PC\SQLEXPRESS;

    و از نگارش Delphi XE6 update 1 استفاده می کنم.
    حالا سوالاتم :
    1- زمانی که می خواهم جستجو فارسی بنویسم باید در query خود قبل از کلمه مورد نظر N را قرار بدم تا unicode بشه، حالا من امدم بعضی از select ها را بردم تو stored procedure که نمیشه جایش N اضافه کرد و زمانی می خواهم جسجو کنم درست کار نمی کند (البته فقط فارسی).
    چطور باید جستجوی فارسی را در stored procedure نوشت و در دلفی استفاده کرد که به مشکل نخورم؟؟؟
    2- فرق بین NChar و NVarChar تا جایی که من میدونم این است که اگر مثلا تعداد کارکتر ها را 100 انتخاب کنیم اما فقط 2 کارکتر را ذخیره کنیم در NChar میاد 98 تا space میگذاره اما در NVarChar این کار را نمی کند که هم حافظه کمتری می گیرد و هم منطقی تر است.
    اما زمانی که از NVarChar استفاده می کنم در dbgrid کلمه widememo نوشته می شود که خیلی از سایت های معتبر مانند about برای رفع این مشکل گفتند باید از کد زیر در ongettext مربوط به dbgrid استفاده کرد :
    text := copy(adotable1.text,1,50)

    که هم کار نمیکنه (مثل این که برای memo است نه برای widememo) و هم به نظرم منطقی نیست و باید راه حل بهتری باشه.
    چطور میتونیم از NVarChar در دلفی استفاده کنیم؟؟؟
    3- فرق بین char و nchar یا varchar و nvarchar در sql همان unicode بودن ان است پس چرا باید از N قبل از کلمات unicode استفاده کرد؟
    ---
    *تمام چیز های را که گفتم هم تست کردم و هم در search هایم متوجه شدم.
    لطفا اساتید محترم در مورد این سوالات کمکم کنید چون واقعا گیرم.
    ممنون
    با تشکر

  2. #2

    نقل قول: مشکل unicode و nvarchar در دلفی

    نقل قول نوشته شده توسط M.Hashemi مشاهده تاپیک
    با سلام
    تا جایی که گشتم چیزی خاصی پیدا نکردم پس مجبور شدم سوال کنم :
    من از پایگاه داده sql server 2008 r2 sp2 express edition استفاده می کنم و connection string من این است :
    Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=aaa;Data Source=test-PC\SQLEXPRESS;

    و از نگارش Delphi XE6 update 1 استفاده می کنم.
    حالا سوالاتم :
    1- زمانی که می خواهم جستجو فارسی بنویسم باید در query خود قبل از کلمه مورد نظر N را قرار بدم تا unicode بشه، حالا من امدم بعضی از select ها را بردم تو stored procedure که نمیشه جایش N اضافه کرد و زمانی می خواهم جسجو کنم درست کار نمی کند (البته فقط فارسی).
    چطور باید جستجوی فارسی را در stored procedure نوشت و در دلفی استفاده کرد که به مشکل نخورم؟؟؟
    2- فرق بین NChar و NVarChar تا جایی که من میدونم این است که اگر مثلا تعداد کارکتر ها را 100 انتخاب کنیم اما فقط 2 کارکتر را ذخیره کنیم در NChar میاد 98 تا space میگذاره اما در NVarChar این کار را نمی کند که هم حافظه کمتری می گیرد و هم منطقی تر است.
    اما زمانی که از NVarChar استفاده می کنم در dbgrid کلمه widememo نوشته می شود که خیلی از سایت های معتبر مانند about برای رفع این مشکل گفتند باید از کد زیر در ongettext مربوط به dbgrid استفاده کرد :
    text := copy(adotable1.text,1,50)

    که هم کار نمیکنه (مثل این که برای memo است نه برای widememo) و هم به نظرم منطقی نیست و باید راه حل بهتری باشه.
    چطور میتونیم از NVarChar در دلفی استفاده کنیم؟؟؟
    3- فرق بین char و nchar یا varchar و nvarchar در sql همان unicode بودن ان است پس چرا باید از N قبل از کلمات unicode استفاده کرد؟
    ---
    *تمام چیز های را که گفتم هم تست کردم و هم در search هایم متوجه شدم.
    لطفا اساتید محترم در مورد این سوالات کمکم کنید چون واقعا گیرم.
    ممنون
    با تشکر



    سلام
    کافیه جدول های بانک رو به جای nvarchar از varchar استفاده کنییییییییییییییییییییییی یییییییییی..................
    سجاد داوند

تاپیک های مشابه

  1. مشکل در فارسی نویسی در دلفی 7
    نوشته شده توسط golihaghighi در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: چهارشنبه 27 اسفند 1382, 17:25 عصر
  2. مشکل ارسال key به webbrowser دلفی
    نوشته شده توسط SReza1 در بخش برنامه نویسی در Delphi
    پاسخ: 11
    آخرین پست: پنج شنبه 17 مهر 1382, 20:15 عصر
  3. مشکل استفاده از Access در دلفی
    نوشته شده توسط دلفی زاده در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 4
    آخرین پست: شنبه 08 شهریور 1382, 13:46 عصر
  4. مشکل در بی دی ای دلفی
    نوشته شده توسط hosseinabdollah در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 1
    آخرین پست: یک شنبه 17 فروردین 1382, 17:38 عصر

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

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