انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: برنامه نویسی با Lazarus (پست اول ویرایش شد ۹۳/۰۴/۲۳ )  (دفعات بازدید: 203837 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین aliboy

  • High Sr. Member
  • *
  • ارسال: 558
  • جنسیت : پسر
پاسخ : برنامه نویسی با Lazarus
« پاسخ #90 : 19 آذر 1391، 11:48 ق‌ظ »

سلام

برای من نال به پایگاه داده میفرسته.هم عدد و هم رشته.

هر وقت داده ها رو میفرستم null ثبت میکنه و بعدش هم این خطا رو میده:

نقل‌قول
Can not open a Resultset

با  تابع strtoint64 هم  امتحان می کنم.

تشکر




تشکر
و ما میطوانیم

آفلاین امیر شهریاری

  • Sr. Member
  • *
  • ارسال: 323
  • جنسیت : پسر
پاسخ : برنامه نویسی با Lazarus
« پاسخ #91 : 19 آذر 1391، 07:22 ب‌ظ »
برای من نال به پایگاه داده میفرسته.هم عدد و هم رشته.

هر وقت داده ها رو میفرستم null ثبت میکنه و بعدش هم این خطا رو میده:
سلام
میشه دوباره طریقه ارسال پارامتر های خود به پایگاه داده رو بگید؟

آفلاین aliboy

  • High Sr. Member
  • *
  • ارسال: 558
  • جنسیت : پسر
پاسخ : برنامه نویسی با Lazarus
« پاسخ #92 : 19 آذر 1391، 08:56 ب‌ظ »

سلام

3 تا TEdit رو روی فرم گذاشنم که به ترتیب برای id- عدد ،name- رشته نام ،family-رشته نام خانوادگی استفاده میشه.
اتصال به پایگاه داده هم که بدون خطا انجام میشه.
برای ثبت اطلاعات هم یک دکمه گذاشتم و کد های زیر رو اضافه کردم:



 ZQuery2.Active:=true;
   ZQuery2.Params.Items[0].AsInteger:=StrToInt(Edit1.Text);
   ZQuery2.Params.Items[1].AsString:=Edit2.Text;
   ZQuery2.Params.Items[2].AsString:=Edit3.Text;
   ZQuery2.ExecSQL;   


بجز کامپوننت های اتصال به پایگاه داده فقط یک ZQuery2 اضافه کردم و توی خاصیت SQLش هم این رو قرار دادم:

call `amahi`.`insert_p`(:id,:name,:family);

3 تا پارامتر رو هم می بینم.
پایگاه داده Amahi که جدول persian رو داره.با 3 فیلد id-name-family .

اگه اطلاعات دیگه ای هم لازم بود بگید تا بذارم.

تشکر
و ما میطوانیم

آفلاین امیر شهریاری

  • Sr. Member
  • *
  • ارسال: 323
  • جنسیت : پسر
پاسخ : برنامه نویسی با Lazarus
« پاسخ #93 : 20 آذر 1391، 07:21 ق‌ظ »
ZQuery2.Active:=true;
سلام
این خط رو غیر فعال کنید و دوباره امتحان کنید.
شما قبل اینکه به پارامترها مقدار بدید query رو فعال کردید. اینجوری پارامترها خالی ارسال میشن. Active یه جورایی همون کار EXEcSql رو انجام میده.

آفلاین aliboy

  • High Sr. Member
  • *
  • ارسال: 558
  • جنسیت : پسر
پاسخ : برنامه نویسی با Lazarus
« پاسخ #94 : 20 آذر 1391، 01:32 ب‌ظ »

سلام


بسیار عالی     =D>     =D>

جواب داد و اطلاعات رو ثبت کرد.
 
فقط مشکل دیگه نمایش اطلاعات فارسیه که ؟؟؟ نشون میده ولی داده های انگلیسی رو درست نشون میده.
توی clientcodepage مقدار utf8 رو گذاشتم و تعریف دیتابیس هم همین طور:utf8_persian_ci
ولی همچنان این مشکل وجود دارد.

سپاس
و ما میطوانیم

آفلاین امیر شهریاری

  • Sr. Member
  • *
  • ارسال: 323
  • جنسیت : پسر
پاسخ : برنامه نویسی با Lazarus
« پاسخ #95 : 21 آذر 1391، 07:00 ق‌ظ »
فقط مشکل دیگه نمایش اطلاعات فارسیه که ؟؟؟ نشون میده ولی داده های انگلیسی رو درست نشون میده.
توی clientcodepage مقدار utf8 رو گذاشتم و تعریف دیتابیس هم همین طور:utf8_persian_ci
ولی همچنان این مشکل وجود دارد.
نباید همچین مشکلی باشه اگه این کارها رو انجام بدین.
مشکل فارسی تو کدوم قسمته؟ تو برنامه شما یا تو پایگاه فارسی ذخیره نمیشه؟
با workbench هم اطلاعات پایگاه داده که فارسی هستن درست نمایش داده نمیشه؟

آفلاین aliboy

  • High Sr. Member
  • *
  • ارسال: 558
  • جنسیت : پسر
پاسخ : برنامه نویسی با Lazarus
« پاسخ #96 : 21 آذر 1391، 12:18 ب‌ظ »

سلام

وقتی دستی اطلاعات فارسی وارد میکنم توی PHPMyAdmin فارسی صحیح وارد میشه و تو لازاروس صحیح هم نشون داده میشه.

ولی وقتی با لازاروس فارسی میفرستم سمت دیتابیس هم در phpmyadmin و هم WorkBench ؟؟؟ ذخیره میشه و نشون داده میشه.

سپاس
و ما میطوانیم

آفلاین امیر شهریاری

  • Sr. Member
  • *
  • ارسال: 323
  • جنسیت : پسر
پاسخ : برنامه نویسی با Lazarus
« پاسخ #97 : 21 آذر 1391، 01:38 ب‌ظ »
خب یک کار دیگه انجام بدید.
قسمت codepage رو خالی بگذارید و بعد برید قسمت peropertis و اونو باز کنید و سپس توی اون اینو تایپ کنید.
codepage=utf8ببینید درست میشه یا نه  ;)

آفلاین aliboy

  • High Sr. Member
  • *
  • ارسال: 558
  • جنسیت : پسر
پاسخ : برنامه نویسی با Lazarus
« پاسخ #98 : 21 آذر 1391، 03:55 ب‌ظ »
سلام

تشکر

ولی متاسفانه باز هم جواب نداد و به همون صورت ؟؟؟ نشون داده میشه.تایپش هم MyISAM گذاشتم.

راهی به ذهنم نمیرسه.

این PreprepareSQL رو هم اونجا دیدم چه نقشی داره؟
« آخرین ویرایش: 21 آذر 1391، 04:04 ب‌ظ توسط aliboy »
و ما میطوانیم

آفلاین امیر شهریاری

  • Sr. Member
  • *
  • ارسال: 323
  • جنسیت : پسر
پاسخ : برنامه نویسی با Lazarus
« پاسخ #99 : 21 آذر 1391، 06:19 ب‌ظ »
ولی متاسفانه باز هم جواب نداد و به همون صورت ؟؟؟ نشون داده میشه.تایپش هم MyISAM گذاشتم.

راهی به ذهنم نمیرسه.

این PreprepareSQL رو هم اونجا دیدم چه نقشی داره؟
نمیدونم چرا همچینه ؟ تو سیستم من که هم Windows و هم گنو/لینوکس فارسی هم درست ذخیره میشه و هم نمایش داده مشه.
با اون گزینه هم من تاحالا کار نکردم. راستش نمی دونم به چه کاری میاد.
راستی چرا پایگاه داده از نوع myisam هست؟ باید Inodb باشه. هرچند مربوط به فارسی نمیشه ولی فکر می کنم inodb بهتره از myisam .

آفلاین aliboy

  • High Sr. Member
  • *
  • ارسال: 558
  • جنسیت : پسر
پاسخ : برنامه نویسی با Lazarus
« پاسخ #100 : 22 آذر 1391، 12:29 ق‌ظ »

سلام

با Inodb  هم امتحان کردم و جواب نداد.


فیلد ها رو باید از چه نوع type  قرار بدم.عدد رو نشون میده اما رشته های فارسی رو نه؟
و ما میطوانیم

آفلاین امیر شهریاری

  • Sr. Member
  • *
  • ارسال: 323
  • جنسیت : پسر
پاسخ : برنامه نویسی با Lazarus
« پاسخ #101 : 22 آذر 1391، 07:17 ق‌ظ »
من فیلدهای رشته ای رو varchar میزارم و با فارسی هم مشکلی نداشتم.
شما تو ویندوز داری امتحان می کنی یا تو گنو/لینوکس؟

آفلاین aliboy

  • High Sr. Member
  • *
  • ارسال: 558
  • جنسیت : پسر
پاسخ : برنامه نویسی با Lazarus
« پاسخ #102 : 22 آذر 1391، 11:49 ق‌ظ »

سلام

من توی ویندوز دارم امتحان میکنم.

توی جدول دیگه هم امتحان کردم ولی باز هم همون جوریه.

در اینده نزدیک میخوام برنامه ها رو روی ابونتو بنویسیم.نکته خاصی در مورد گنو/لینوکس ابونتو برای کار با لازاروس وجود داره؟

و ما میطوانیم

آفلاین امیر شهریاری

  • Sr. Member
  • *
  • ارسال: 323
  • جنسیت : پسر
پاسخ : برنامه نویسی با Lazarus
« پاسخ #103 : 23 آذر 1391، 08:07 ق‌ظ »
من توی ویندوز دارم امتحان میکنم.
پس حتما اون قسمت که تو کنترل پنل مربوط به زبان هست و برای برنامه های Unicode هست رو روی Farsi  تنظیم کرده اید ؟
در این صورت نباید مشکلی توی فارسی وارد کردن رشته ها از طریق برنامه تو پایگاه داده داشته باشه.

آفلاین aliboy

  • High Sr. Member
  • *
  • ارسال: 558
  • جنسیت : پسر
پاسخ : برنامه نویسی با Lazarus
« پاسخ #104 : 23 آذر 1391، 11:53 ق‌ظ »

سلام

یونی کد که درست تنظیم شده.

گفتم وقتی که اطلاعات رو دستی وارد دیتابیس میکنم اطلاعات فارسی، صحیح نشون داده میشه (هم در لازاروس هم پایگاه داده)

فقط میمونه اطلاعاتی که لازاروس به پایگاه داده میفرسته که به صورت ؟؟؟ نشون داده میشه پس تقریبا میشه نتیجه بگیریم که لازاروس نمیتونه درست اطلاعات فارسی رو بفرسته و هر چی هست بین لازاروس و پایگاه دادس.
من ویندوز 64 بیت با لازاروس دارم و میخوام منتقلش کنم به ابونتو.

توی گوگل مقداری جستجو میکنم ببینم عیب از کجا پیدا میشه.

تشکر
و ما میطوانیم