استفاده از بانک اطلاعاتی در برنامه های موبایل
سلام دوستان ،
من خیلی گشتم ولی نتونستم یه راهنمایی خوب پیدا کنم ،
من مشغول نوشتن یک برنامه برای اندروید هستم که نیاز دارم تو برنامه از بانک اطلاعاتی استفاده کنم ، برای این کار :
1- اول با استفاده از fdcoonection یک بانک از نوع sqllite با پسوند *.s3db ساختم .
2- با استفاده از یک fdquery تونستم یک جدول بسازم .
اما برای Insert کردن اطلاعات به مشکل برخوردم ، متأسفانه از هر روشی که استفاده کردم نتونستم کاری بکنم ، اگه دوستان راهنمایی بکنن ممنونم ،
نقل قول: استفاده از بانک اطلاعاتی در برنامه های موبایل
سلام دوست من
من کامپوننت های FireDac در حد حرفه ای اشنا هستم و کمکت میکنم:
1- از توی اینترنت برنامه SQLite Expert Professional رو دانلود کن و یک بانک با پسوند هایی که داره بساز.
2- در برنامه ات fdconnection و fdtable بیار این ها رو وصل کن و بانکت رو بیار بعد مقدار جدولت رو از table بگیر.
حالا برای insert و delete و edit و ... راحت کارت رو انجام بده بدون مشکل فقط در اندروید باید بانکت رو در مسیری بگذاری و در رخداد onshow فرمت باید fdconnection آدرسش رو جایی بدی که بانکت هست مثلا(اگر میخوای از sqlite استفاده کنی):
FDConnection.Params.Text:=''; FDConnection.Params.Database:=ExePath+'data.db3';
FDConnection.ConnectionDefName:='SQLite_Demo';
FDConnection.DriverName:='SQLite';
FDConnection.Params.DriverID:='SQLite';
FDConnection.Connected:=true;
FDtable.Active:=true;
این exepath یک متغیر عمومی از نوع String هست که موقع create شدن فرم اصلی پر میشه مثلا:
exepath:=/sdcard/data/
sdcard حافظه اصلی گوشی اندروید هست.نه حافظه خارجی.
بعد راحت بابانکت کارکن.
نقل قول: استفاده از بانک اطلاعاتی در برنامه های موبایل
حالا برای insert و delete و edit و ... راحت کارت رو انجام بده بدون مشکل فقط در اندروید باید بانکت رو در مسیری بگذاری و در رخداد onshow فرمت باید fdconnection آدرسش رو جایی بدی که بانکت هست مثلا(اگر میخوای از sqlite استفاده کن
تشکر می کنم دوست بزرگوار و دوست داشتنی ، از علم شما خیلی استفاده بردم تا حالا ،
دوست گلم آیا برای این کار از fdtable استفاده کنم یا fdquery ؟
از طرفی من با دستورات SQL آشنا هستم آیا با fdtable می تونم از دستورات SQL استفاده کنم ...!!! فکر نمی کنم بشه ...
آیا راهی هست که بشه از FDQuery استفاده کرد.
در زمینه ساپورت کردن زبون فارسی باید چیکار کنم ، یک کامپوننت هم دوستان معرفی کردن که متاسفانه برای XE7 جواب نداد ...
و موضوع آخر اینکه کامپوننت های DB توحالت موبایل وجود نداره درسته ؟ مثل DBGride ، DBEdite و.... اگه هست تو کدوم تب ...؟؟؟
نقل قول: استفاده از بانک اطلاعاتی در برنامه های موبایل
1-اگر datasnap نیست بهتره از Fdtable استفاده کنی تا Fdquery
2-چرا کامپوننت های firedac هم به My SQLوصل میشن و هم به MSSQL.
3-خب وقتی از sql استفاده میکنید از sqlconnection و sqlquery استفاده کن،اینطوری نیازی به firedac نداری و هم میتونی از sqlquery استفاده کنی.
4-مشکل فارسی حل نشده. دوست عزیز nice boy در همین زمینه یه یونیتی فارسی گذاشتند که فارسی رو تا حدودی حل کرده.برای بانک اطلاعاتی هم خوب کارمیکنه.
5-خیر باید از edit استفاده کنید و با جای dbgrid از String grid , bindinglist استفاده کنید و در موبایل باید جدول رو خودتون بسازید(آموزش ساخت جدول با String grid توی سایت های خارجی هست و هم sample دلفیش در مسیر برنامه وجود داره.):بامزه:
موفق باشی:چشمک:
1 ضمیمه
نقل قول: استفاده از بانک اطلاعاتی در برنامه های موبایل
جناب عباسی ضمن تشکر ،
شما منظور من رو متوجه نشدید ،
1- منظور من استفاده از دستورات SQL بود نه خود بانک SQL
2- من از همون FDTable هم استفاده کردم موقع اجرا خطا میده ، تصویر خطا اینجا هست ، نمی دونم چشه ...
3- اگه براتون امکان داره یه نمونه سورس ساده بزارید ...
ضمیمه 136342
نقل قول: استفاده از بانک اطلاعاتی در برنامه های موبایل
من تقریبا تونستم تمام مشکلات رو حل کنم اما به یه مشکل جدید برخوردم ...
مشکل اینه که وقتی دیتابیس رو به فایل APK می چسبونم کلا برنامه روی گوشی اجرا نمیشه ....
Project , Deployment از اینجا فایل رو میچسبونم و RemootPath را به assets\internal\ تغییر میدم اما بازم مشکل پا برجاست ....
نقل قول: استفاده از بانک اطلاعاتی در برنامه های موبایل
واااااای دیووونه شدم ...
جناب عباسی عزیز کدی که برای فراخوانی بانک گذاشتید کار نمی کنه ....
اول که به exepath گیر میده بعد که من ecxepath رو از نوع string تعریف کردم ، حالا برنامه اجرا که می شه خطا میده و می گه نمیتونم بانک رو پیدا کنم ...
نقل قول: استفاده از بانک اطلاعاتی در برنامه های موبایل
نقل قول:
نوشته شده توسط
RahmanAmiriSh
جناب عباسی ضمن تشکر ،
شما منظور من رو متوجه نشدید ،
1- منظور من استفاده از دستورات SQL بود نه خود بانک SQL
2- من از همون FDTable هم استفاده کردم موقع اجرا خطا میده ، تصویر خطا اینجا هست ، نمی دونم چشه ...
3- اگه براتون امکان داره یه نمونه سورس ساده بزارید ...
ضمیمه 136342
سلام
اینکه بیچاره خوودش داره میگه مشکل چیه! یدونه کامپوننت FDGUIxWaitCursor بزار روی فرم مشکل این خطا رفع میشه!
موفق باشیم
نقل قول: استفاده از بانک اطلاعاتی در برنامه های موبایل
نقل قول:
نوشته شده توسط
hp1361
سلام
اینکه بیچاره خوودش داره میگه مشکل چیه! یدونه کامپوننت FDGUIxWaitCursor بزار روی فرم مشکل این خطا رفع میشه!
موفق باشیم
این رو هم همون روز حل کردم و فقط مونده مشکل فارسی
نقل قول: استفاده از بانک اطلاعاتی در برنامه های موبایل
سلام
دوست عزیز ببخشید من بعلت برخی مسائل فقط سه شنبه ها و چهارشنبه ها درخدمتم شرمنده.
خوب مشکل پیغامت رو که حل کردی باریکلا.
بعد در موقعی که Fdconnection قرار هست کارکنه باید قبل از اجرا و کامپایل کردن اگر Fdconnection بخش connect وصل هست باید false کنی و درضمن برای تمامی کامپوننت های firedac که active یا connect دارند رو false کنی و بعد کامپایل بگیری.
اصلا به تنظیمات deployment دست نگذار و تغییر نده در مسیر موبایلت یه پوشه ایجاد کن به اسم مثلا data بعد متغیر exepath رو اینطوری مقدار بده:
exepath:='/sdcard/اسم پوشه دلخواه/'
باید درست کارکنه بشرطی که از دستوراتی که اون بالا برای پرکردن fdconnection گفتم رو درست نوشته باشی.
بعد یه فرمان try اضافه کن به این صورت:
FDConnection.Params.Text:=''; FDConnection.Params.Database:=ExePath+'MessageData .db3';
FDConnection.ConnectionDefName:='SQLite_Demo';
FDConnection.DriverName:='SQLite';
FDConnection.Params.DriverID:='SQLite';
try
FDConnection.Connected:=true;
if FDConnection.Connected then
FDMessage.Active:=true;
except
ShowMessage('اتصال برقرار نشد');
end;
که اگر برقرار نشد بفهمی اشکال از کجاست.
من خودم دارم در اندروید از بانک اطلاعاتی استفاده میکنم و به مشکلی برنخورده ام؟!!!
درضمن باید صبر کنید تا مشکل فارسی حل بشه.:لبخندساده:
نقل قول: استفاده از بانک اطلاعاتی در برنامه های موبایل
نه دوست عزیز این راه شما خوبه منتها با اضاف کردن System.IOUtils در قسمت Uses یه رکورد به نام TPath در اختیارت قرار میده که به این صورت راحت می تونی بانکت رو فراخوانی کنی :
FDConnection1.Params.Values['Database'] :=
TPath.Combine(TPath.GetDocumentsPath, 'dbdemos.gdb');
الان تنها مشکل من اینه که وقتی برنامه رو اجرا می کنم فیلدهای فارسی رو به صورت ؟؟؟؟؟؟؟؟؟؟ نشون میده ....:ناراحت:
از این کامپوننت dpf delphi هم نتونستم استفاده کنم ، چون اطلا نصب نمی شه ....:قهقهه:
ای کاش یه راه حلی برای این موضوع فارسی پیدا می شد ....:عصبانی++:
نقل قول: استفاده از بانک اطلاعاتی در برنامه های موبایل
بله اون کامپوننت dpf اگر استفاده کنی دیگه نمی تونی از کامپوننت های پیشفرض دلفی استفاده کنی.:عصبانی:
حالا من امیدوارم مشکل فارسی حل بشه.:لبخندساده:
نقل قول: استفاده از بانک اطلاعاتی در برنامه های موبایل
سلام
برای استفاده راحت از بانک اطلاعاتی در آندروید در محیط دلفی میتوانید از کامپوننت Devart UniDAC استفاده نمایید.
نقل قول: استفاده از بانک اطلاعاتی در برنامه های موبایل
سرعت و کم حجم بودن کامپوننت های firedac مزیت حساب می شود که از unidac استفاده نکنیم.
اما unidac هم جواب گو هست.
مثال های دلفی برای firedac بیشتر از unidac است یعنی دلفی بیشتر firedac رو پیشنهاد میکنه.