PDA

View Full Version : درج عبارات فارسی در بانک و خواندن عبارات فارسی از بانک



marmar
سه شنبه 20 آذر 1386, 07:34 صبح
سلام
من یه با نک sql دارم می خوام از داخل فرم اطلاعات فارسی توش بریزم اطلاعات فارسی بصورت نا خوانا در بانک ذخیره می شه و نیز اگر اطلاعات فارسی را دستی در بانک بنویسم بصورت علامت سوال در فرم نمایش داده می شه می شه بگید مشکل از کجاست
من زبان برنامه نویسیم delphi 7 هست , sql 2000 , edition personal , win xp pero , است
در ضمن هنگام تعریف بانک هم زبان بانک را تو قسمت colation name برابر server default تعریف کردم
تو search که تو سایت انجام دادم اینو با انواع arabic_cl_as و چند تا دیگه عربی هم چک کردم و نیز با sql_latin1_gerneral_cp1_cl_al هم امتحان کردم مشکل حل نشد نوع فیلد ههای بانک رو هم nvarchar می گذارم
کد درجم تو بانک :
ADOQuery1.Insert;
DataSource1.Edit;
ADOQuery1.FieldByName('name').AsString:=Edit2.Text ;
ADOQuery1.Post;
ممنون می شم بتونید کمکم کنید

A.Nemati
سه شنبه 20 آذر 1386, 09:38 صبح
باید colation name را برابر Arabic_CI_AI قرار بدید

marmar
سه شنبه 20 آذر 1386, 10:15 صبح
قرار دادم اما نشد
باز هم همون مشکل رو دارم
می شه راهنمایی کنید

A.Nemati
سه شنبه 20 آذر 1386, 10:27 صبح
در واقع شما کار دیگه‌ای نباید انجام بدید!
برای اینکه به جواب برسید یه برنامه کوچک با یک بانک کوچک طراحی کنید. هنگام طراحی بانک colation name اون را برابر Arabic_CI_AI قرار بدید. با توجه به مشخصاتی هم که نوشتید نیازی به nvarchar ندارید و همون varchar جواب کار رو می‌ده.
این برنامه نمونه رو امتحان کنید. اگه باز هم جواب نگرفتید اونو همراه DataBase نمونه همینجا آپلود کنید تا مشکلتون بررسی بشه.

m101_30
سه شنبه 20 آذر 1386, 11:02 صبح
اگر اطلاعات فارسی را در بانک درست مشاهده می کنید اما در Delphi به صورت علامت ? مشاهده میکنید باید تنظیمات ویندوز خود را درست کنید.
Regional and Language Option در control pannel باز کنید.
در قسمت Advance در Select Language میبایست Farsi را انتخاب کنید.

marmar
سه شنبه 20 آذر 1386, 12:57 عصر
نه
مشکل من اینه که اطلاعاتم از form درست وارد بانک نمی شه
وقتی هم که اطلاعاتم رو دستی با فونت فارسی می ریزم تو بانک و می خوام تو یه dbgrid ببینم بصورت علامت سوال نشون داده می شه
چی کار کنم؟

dkhatibi
سه شنبه 20 آذر 1386, 13:26 عصر
در قسمت Advance در Select Language میبایست Farsi را انتخاب کنید.
را رعایت کرده اید؟
متغیرهای رشته ای تعریف شده در بانک از نوع VarChar یا NvarChar می باشند؟
ابزار ورودی شما که همان Edit های معمولیه یا از ابزار یونیکد استفاده کرده اید؟

Hamid_PaK
سه شنبه 20 آذر 1386, 15:41 عصر
این رو آزمایش کنید:

ADOQuery1.Insert;
DataSource1.Edit;
ADOQuery1.FieldByName('name').AsValue := Edit2.Text ;
ADOQuery1.Post;

یا حق ...

SYNDROME
سه شنبه 20 آذر 1386, 20:30 عصر
ابزار ورود اطلاعات و ارتباط با بانک شما چی است؟
موفق باشید

marmar
چهارشنبه 21 آذر 1386, 15:15 عصر
سلام به همه ی دوستان
من ابزار ورود اطلاعاتم edit معمولی هست
تو قسمت advanced farsi تنظیم کردم
نوع فیلدم nvarchar است.
collation name : sql_latin_general_cp1256_ci_as است
الان مشکلم تا حدودی توی فرم حل شده
یعنی اطلاعاتم رو تو فرم تو debgridدرست می بینم
اما وقتی بانک رو باز می کنم اطلاعاتم به این شکل است
ÓãäÇä ÈáæÇÑ æáí
می خوام بدونم بعدا مشکلی بوجود نمی یاد
یا تو سیستم های دیگه اطلاعاتم واضح دیده می شه؟
و مشکل دیگه ای که دارم اینه دیگه که تو table اگه اطلاعاتم رو دستس وارد کنم تو فرمم بصورت ؟؟؟؟ نشون داده می شه
ممنونم از توجهتون

marmar
دوشنبه 26 آذر 1386, 08:08 صبح
دوستانی که قبلا با این مشکل روبرو بودن لطفا راهنمایی کنن
حالا که من تو فرمم اطلاعاتم رو در ست می بینم اما تو table (sql server 2000 اطلاعاتم بصورت
ÓãäÇä ÈáæÇÑ æáí
است بعدا تو یه کامپیوتر دیگه مشکلی برای دیدن اطلاعات ندارم؟
و چطور می شه این مشکل رو حل کرد که اطلاعات درست وارد بشه ؟
و نیز اگه من دستی اطلاعات رو وارد کنم بصورت ؟؟؟؟ نشون داده میشه ، چطور برطرفش کنم

SYNDROME
دوشنبه 26 آذر 1386, 08:21 صبح
آیا در قسمت تنظیمات فونت Edit گزینه Charset برابر DEFAULT_CHARSET است؟
موقع نصب SQL آیا با تنظیمات پیش فرض نصب کرده اید؟
موفق باشید