PDA

View Full Version : برنامه نویسی بانک اطلاعاتی برای اندروید (توسط دلفی xe8)



hmdknight
شنبه 27 تیر 1394, 00:43 صبح
سلام دوستان
یه برنامه بانک اطلاعاتی sqlite برای اندروید نوشتم, ولی روی گوشی اجرا نمیشه اصلا البته وقتی موارد مربوط به دیتابیس رو حذف می کنم اجرا میشه).

چجوری باید دیتابیس رو اتنقال بدم به گوشی (که با run کردن برنامه، به فولدرش ریخته شه) و چجوری connection رو تو برنامه خودم ایجاد کنم؟ یعنی آدرس فایل دیتا بیس چی مشه؟
(این برنامه روی خود ویندوز به درستی اجرا میشه)

آیا با دیتابیسی به غیر از sqlite و dbExpress میشه برای اندروید کار کرد؟

nice boy
شنبه 27 تیر 1394, 10:03 صبح
سلام
برای اینکه فایل دیتابیس رو به برنامه ات اضافه کنی به منوی Project بعد Deployment برو در اینجا فایل دیتابیس رو اضافه کن و RemotePath رو روی assets\internal\ تنظیم کن
کد زیر هم برای اتصال به دیتابیس نوشته شده


var FullPath: string;
aFileName: string;
I: Integer;
begin
aFileName := 'CustomerDB.s3db';
{$IFDEF Android}
//FullPath := TPath.Combine(TPath.GetSharedDocumentsPath, aFileName);
FullPath := TPath.Combine(TPath.GetHomePath, aFileName);
{$ENDIF}
{$IFDEF MSWINDOWS}
FullPath := 'D:\Temp\Android\AndroidDatabase\' + aFileName;
{$ENDIF}
//ShowMessage(FullPath);


if FileExists(FullPath) then
begin
MessageDlg('File found in ' + FullPath, TMsgDlgType.mtInformation, [TMsgDlgBtn.mbOK], 0);
CustomerConnection.DriverName := 'SQLite';
//CustomerConnection.Params.Values['Database'] := FullPath;
CustomerConnection.Params.Add('Database='+ FullPath);
CustomerConnection.Connected := True;

hmdknight
شنبه 27 تیر 1394, 10:59 صبح
سلام و ممنون از راهنماییت
ولی وقتی برای اندروید ران میکنمش از combine و GetHomepath خطا میگیره و میگه Tpath همچین چیزایی نداره.

من این قسمت رو با ExtractFilePath نوشته بودم (که ظاهرا خروجی اون هم درست نیست) و خط (....) MessageDlg باعث هنگ کردن برنامه میشد.

(خطای blocking dialogs not implemented on this platform)