PDA

View Full Version : دلفی Sql Server و یک مشکل خنده دار !



khafanovich
دوشنبه 03 مرداد 1384, 17:53 عصر
سلام دوستان .
من یک برنامه تستی با دلفی نوشتم که از یک جدول در SQL گزارش میگیره.
مشکل اینجاست که من دقیقا رشته Query تولید شده در Sql server از طریق دلفی به Sql Server میفرستم ولی جوابی دریافت یمکنم .جالبه که همین دستور در خود sql server جواب میده.
لطفا اگه تا به حال به این مشکل برخوردید راهنمایی کنید.
تصاویر رو در زیر گذاشتم.
جالبه این مشکل درمورد بعضی کلمات فارسی رخ میده ...مثلا 'سامان'رو پیدا میکنه ولی 'مهدی' رو نه در sqlServer و نه در دلفی نیمتونه پیدا کنه. خلاصه فک میکنم مشکل جزیی باشه و نکته خاصی داشته باشه لطفا راهنمایی کنید.

امیر-نا
سه شنبه 04 مرداد 1384, 01:37 صبح
با سلام
برای من هم این مشکل پیش اومده و فکر کنم که دلیل اون هم حرف "ی" باشه که به صورت عربی وارد بانک شده است.به این فرم"ی". من هم نفهمیدم مشکل رو چه جوری حل کنم

امیر

Babak-Aghili
سه شنبه 04 مرداد 1384, 01:48 صبح
شاید احمقانه باشه ولی امتحانش ضرر نداره ::

سازگاری Character Encoding در SqlServer و محیط دلفی تون را یک چک بکنید ...


مخلصیم آقای علیپور !

khafanovich
سه شنبه 04 مرداد 1384, 11:39 صبح
با سلام خدمت حاج بابک.( ما خیلی مخلصیم)
اگر امکان داره دوستان و اساتید برای حل این مشکل کوچک ما را اهنمایی کنند.
دکتر کرامتی اگه میشه یک نسخه برای حل این مشکل بدید.
ممنون.

a_allameh
چهارشنبه 05 مرداد 1384, 08:12 صبح
با سلام
کدهای اسکی برای نشان دادن حروف در CodePage های مختلف متفاوت می باشد. مثلا کد حرف "ک" در Parsa برابر 223 و پیش فرض XP برابر 152 می باشد. بنابر این اگر این CodePage ها را توسط یک Application اصلاح کنید مشکل حل می شود.
موفق و پیروز باشید.

khafanovich
چهارشنبه 05 مرداد 1384, 08:20 صبح
فکر میکنم مشکل راحت تر از این حل بشه .
آیا شما این راه حل رو امتحان کردید؟ و جواب گرفتید.اگر جواب شما + است لطفا مراحل کار را بصورت تیتر وار توضیح دهید.
ممنون.

arshia_
چهارشنبه 05 مرداد 1384, 16:18 عصر
در صورتی که مشکل حل نشده باشه
بهتره یه بار تمام اطلاعات بانک رو توسط به برنامه که کوچک ورود اطلاعات به بانک به صورت یونی کد اضافه کنید...

khafanovich
پنج شنبه 06 مرداد 1384, 08:26 صبح
دوست عزیز اگر امکان داره بیشتر توضیح دهید ممنون میشم.

arshia_
پنج شنبه 06 مرداد 1384, 19:48 عصر
من قبلا این مشکل رو داشتم و شاید علت این بود که من اطلاعات تستی رو از طریق خود Enterprise Manager وارد می کردم..اما بعدا که با کمک برنامه و کد نویسی اطلاعات رو به جدول اضافه کردم میزان خطا کم تر شد...البته 100% حل نشد اما شاید درصد ناچیزی از مشکل باقی موند
شما هم بهتره این کار رو انجام بدین
امیدوارم مشکل شما حل بشه

namazi
پنج شنبه 06 مرداد 1384, 19:57 عصر
من هم این مشکل رو توی vb داشتم و خنده دار اینکه نمیدونم با تبدیل ( " ) به ( ' ) در جملات sql حل شد و یا برعکس .

khafanovich
جمعه 07 مرداد 1384, 11:03 صبح
من که واقعا گیج شدم این همه برنامه خفن که با دلفی و sql server نوشتن چه جوری این مشکل رو حل کردند؟

devil00x
سه شنبه 23 اسفند 1384, 01:07 صبح
من قبلا این مشکل رو داشتم و شاید علت این بود که من اطلاعات تستی رو از طریق خود Enterprise Manager وارد می کردم..اما بعدا که با کمک برنامه و کد نویسی اطلاعات رو به جدول اضافه کردم میزان خطا کم تر شد...البته 100% حل نشد اما شاید درصد ناچیزی از مشکل باقی موند
شما هم بهتره این کار رو انجام بدین
امیدوارم مشکل شما حل بشه
سلام دوست عزیز ، من هم دقیقا مشکل شما رو داشتم ، همونطور که عرشیا گفت مشکل اینه که داده هات رو با Enterprise Manager وارد کردی ، اگه با یه فرم کوچولو ، که یونی کد هستش یعنی فونتش رو Tahoma انتخاب کرده باشی داده رو درج کنی ، دیگه همچین مشکلی رو نداری .
موفق باشی .

pila2pila
شنبه 25 شهریور 1385, 13:20 عصر
ببخشین کسی این مشکل رو حل نکرد؟
من حتی دیتا هام رو از طریق یه فرم بصورت یونیکد وارد کردم اما بازم وقتی تو برنامه از طریق query سطرهای مورد نظرمو select میکنم تو کلمه هایی که ی منفصل داره به مشکل بر میخوره
. تو خود sqlserver هم همین مشکل بود اما وقتی قبل از کلمه موردنظر N گذاشتم مشکل حل شد اینجوری
select * from mytable
where myfield = N'text'

اما اینکار از طریق query تو برنامم جواب نداد

لطفا اگه کسی راه حلی میدونه منو راهنمایی کنه.

jafari1
شنبه 25 شهریور 1385, 20:06 عصر
با سلام
مشکلی که فرمودید من در جستجوی گوگل نیز به آن برخورد کردم روی بعضی کامپیوترها کلمه ای که سرچ شده و جواب داشته را پیدا نمیکند فکر میکنم مشکل در ارتباط با کپی فایل kbdfa.dll باشد

M@hdi
یک شنبه 26 شهریور 1385, 09:02 صبح
من هم یک بار به یک همچین مشکلی برخورد کردم اسم فیلدها را توی [] بذار ببین درست نمیشه ؟

Saeid59_m
یک شنبه 26 شهریور 1385, 10:27 صبح
مشکل اصلی سر کاراکترهاست . من از فونت Iran System استفاده کردم .

هم مشکل سورت بر طرف شد و هم مشکل Search

البته خودتون باید یک Decoder براش بنویسید .

pila2pila
یک شنبه 26 شهریور 1385, 14:42 عصر
سلام
تا اونجایی که میدونم فایل kbdfa.dll برا تغییر کدینگ صفحه کلید هست یادمه ک تو ویندوز 98 با تغییر فایل kbd صفحه کلید رو برا تایپ کاراکترهایی که میخواستم تغییر میدادم . البته اگه به جای "ی" عربی "ی" فارسی تو دیتابیسم بود مشکلی نبود . اما من میخوام از دیتابیس موجود گزارش بگیرم.
راه حل [] هم افاقه نکرد حتی تو خود sqlserver
کاربر سعید 59 منظورتون اینه ک کل دیتابیس رو بر حسب کدینگ ایران سیستم تغییر بدم؟ در این صورت مشکل sort چه طوری حل میشه؟ یعنی engin بانکهای اطلاعاتی کدپیج Iran System رو میشناسن؟

در هر صورت ممنون از راهنمایهاتون.

SoftDevCo
یک شنبه 26 شهریور 1385, 16:30 عصر
توی فرم های دلفی ی رو عربی دریافت می کنه ولی توی محیط های دیگه ی رو به این صورت (ی) قبول می کنه.

راه حل: تمامی داده های توی بانک SQL رو از ی به ی عربی تبدیل کن.

MortezaDelphi
چهارشنبه 05 مهر 1385, 11:55 صبح
مشکل سز فونت و اینا نیست بلکه کد پیج فاریست مشکل داره . اگه اشتباه نکنم روی صفحه کید فاسی شما حرف "پ" به جای "ژ" می خوره . معملا این کد پیج با کلماتی که حرفهای "ی" و "ک" دارن مشکل داره. اگه یه فارسی ساز نصب کنی روی وینوزت مشکل حل میشه .
حرف "پ" باید روی "`" و حرف "ژ" روی "\" باشه.