PDA

View Full Version : لطفا کمک : مشکل تکراری . ولی حل نشد . فارسی و دلفی و sql



salar_sh
شنبه 06 فروردین 1384, 01:42 صبح
با سلام به همه دوستان
من یه مشکلی دارم که شاید تکراری باشه ولی هر چی گشتم مشکلم حل نشد . توی بخش sql هم گشتم ولی جوابی که مشکلم رو حل کنه نبودش و اما مشکل من

من یه برنامه دارم با دلفی و sql وقتی از دستور Insert برای وارد نمودن اطلاعات فارسی استفاده میکنم اطلاعات به صورت ؟؟؟؟ ذخیره میشود . در ضمن ویندوزی که قراره برنامه من توش اجرا بشه پارسا 2001 یعنی میشه 98 SE . البته این مشکل رو توی XP هم دارم .
نمیخواهم از Store Procedure . SQL استفاده کنم . میخواهم مستقیما از دستور Insert توی دلفی استفاده کنم . نوع فیلد هم Nvarchar یا Nchar هست

خیلی ممنون میشم که کسی کمک کنه

اینا رو هم خوندم ولی باز هم نشد

http://www.barnamenevis.org/forum/viewtopic.php?t=13490&highlight=insert+%DD%C7%D1%D 3%ED

http://www.barnamenevis.org/forum/viewtopic.php?t=13855&highlight=insert+%DD%C7%D1%D 3%ED

hr110
شنبه 06 فروردین 1384, 06:13 صبح
مشکل شما مربوطه به ویندوز یا دلفی نیست، به احتمال زیاد SQL رو به درستی نصب نکرده اید،
زمان نصب SQL باید زبان پیش فرض رو عربی 1256 باید انتخاب کنید و یا اینکه زبان پیش فرض ویندوزتون رو قبل از نصب فارسی انتخاب کنید.

fm_mash
شنبه 06 فروردین 1384, 09:08 صبح
سلام
وقتی شما یک database بوجود می اورید
collection name ان را arabic_ci_as انتخاب کنید
حالا اگه داده های قبلی خود را import کنید درست می شود

salar_sh
شنبه 06 فروردین 1384, 12:22 عصر
با سلام به همه دوستان و تشکر بابت جوابها
مشکل حل شد
به N رو همراه با String فارسی فرستادم به دیتا بیس مشکل حل شد . ولی دلیلش رو نمیدونم کسی میدونه N چی کار میکنه . فکر میکنم البته مربوط به یونیکد باشه

خلاصه مشکل حل شد خیلی ممنون

موفق باشید

hr110
شنبه 06 فروردین 1384, 13:35 عصر
فکر میکنم البته مربوط به یونیکد باشه
:موفق:

شکوه
چهارشنبه 17 فروردین 1384, 10:04 صبح
سلام
اگه مشکل نصب نداشته باشین
احتمالاً با تعریف فیلدهای جدول SQL Server از نوع nvarchar و مشابه آن مشکلتان حل شود!

ali512
چهارشنبه 17 فروردین 1384, 13:35 عصر
با سلام
هر چند از این روش می شه ولی اشکال پیش می یاد شما می تونید با استفاده از دستورات sql این کار را انجام دهید مثلا

ado_q1.close;
ado_q1.sql.clear;
ado_q1.sql.add('select * from test');
ado_q1.execqute;
ado_q1.open;
ado_q1.insert;
ado_q1['code']:=edit1.text;
ado_q1['...']:=...;
ado_q1.post;این بهترین روش می باشد.

vcldeveloper
پنج شنبه 18 فروردین 1384, 02:58 صبح
با سلام
هر چند از این روش می شه ولی اشکال پیش می یاد شما می تونید با استفاده از دستورات sql این کار را انجام دهید مثلا
این چه ربطی به فارسی ذخیره شدن مقادیر و عنوان تاپیک داره؟!! :گیج:

ali512
پنج شنبه 18 فروردین 1384, 16:21 عصر
اگه از روش گذاشتن حرف n و یونیکد و اینها استفاده کنی بازم تو سرور اشکال پیش می یاد و فارسی ها به هم می ریزه از روش بالا اگه برای ذخیره کردن ایتفاده بشه اشکالی برای ذخیره فارسی پیش نمی یاد ؟؟؟؟؟؟؟؟؟؟؟؟؟!!!!!!!!!!!!!!!!!!!!!!

vcldeveloper
جمعه 19 فروردین 1384, 03:13 صبح
اگه از روش گذاشتن حرف n و یونیکد و اینها استفاده کنی بازم تو سرور اشکال پیش می یاد و فارسی ها به هم می ریزه
من که تا حالا مشکل نداشتم.


از روش بالا اگه برای ذخیره کردن ایتفاده بشه اشکالی برای ذخیره فارسی پیش نمی یاد
این روش همون روش عادی هست که برای هر رکوردی در هر جدولی‌(چه فارسی و چه انگلیسی) میشه استفاده کرد.

sima_gh7
جمعه 18 شهریور 1384, 00:09 صبح
منظور از گذاشتن حرف n چیه ؟
میشه بیشتر توضیح بدید

saeed_rezaee
شنبه 19 شهریور 1384, 09:39 صبح
حرف N که قبل از String تو دستور Insert گذاشته میشه یعنی اینکه اون رشته یونیکد هستش!!!
من تا حالا چیزی حدود 60 تا 70 هزار رکورد یونیکد که همشون متنهای چند صفحه ای هستند رو با این روش تو SQL Server ذخیره کردم و مشکلی هم نداشتم. البته نوع فیلد باید nvarchar یا ntext باشه...