# Native Code > برنامه نویسی در Delphi > برنامه نویسی موبایل در Delphi >  نمایش بانک اطلاعاتی

## ابوالفضل عباسی

با سلام 
شاید برای شما هم اتفاق افتاده می خواهید در اندروید یا ios از بانک اطلاعاتی استفاده کنید ولی بدلیل عدم وجود DBGrid در اندروید صرف نظر کرده باشید ولی الان با روشی جایگزین (اما با event های کمتر)میتونید بانک اطلاعاتی رو در اندروید نمایش بدهید چگونه؟؟!! به ادامه مطلب توجه کنید.
*بسم الله الرحمن الرحیم
*برای شروع اول باید یک بانک اطلاعاتی رو انتخاب کنید که هم دلفی پشتیبانی کنه و هم بشه در اندروید استفاده کرد باید از این 2 گزینه یکی رو انتخاب کنید(SQLite یا IBLite)نظر بنده با SQLite هست.با نرم افزار SQLite Expert Professional میتونید بانک sqlite بسازید.(بانکش مثل sql server هست) :لبخند گشاده!: 
بعد باید این 3 کامپوننت رو در برنامه تون بگذارید FDTable,FDConnection,FDGUIxWaitCursor
در این مرحله در رخداد onshow فرم اصلی این فرمان ها رو بگذارید تا بانک خونده بشه:
FDConnection1.Params.Text:='';  FDConnection1.DriverName:='SQLite';
  FDConnection1.ConnectionDefName:='SQLite_Demo';
  FDConnection1.Params.Database:='/sdcard/newfolder/MessageData.db3';
  try
    FDConnection1.Connected:=true;
    if FDConnection1.Connected then
      begin
      FDTable1.TableName:='table1';
      FDTable1.Active:=true;
    end;
  except
    ShowMessage('اتصال بانک برقرار نشد');
  end;
در اندروید مسیر حافظه اصلی با sdcard شناخته میشه و به جای MessageData.db3 اسم بانکتون که در گوشی وجود داره قرار میدهید و بجای table1 اسم بانک هست.
خب اینطوری بانک توسط گوشی خونده میشه.
حال این 2 کامپوننت رو در برنامه تون قرار دهید: stringgrid,BindSourceDB
بعد بخش dataset کامپوننت bindsource رو به بانکتون مثلا fdtable1 وصل کنید.
روی string grid کلیک کنید و به بخش LiveBindings بروید و روی آن کلیک و bind visually بزنید و در پایین دلفی یه بخشی می آید روی ابجکت stringgrid کلیک کنید و اون فیلد که ستاره دارد (*) رو به bind source که (*)دارد وصل کنید مانند تصویر زیر:
Untitled.jpg
خب حالا بانک رو در string grid میتونید ببینید حتی موقع اجرا میتونید به بانکتون فیلد جدید اضافه کنید و فیلدی رو تغییر دهید و در بانک ذخیره و اعمال شود :کف کرده!:  :لبخند گشاده!: 
درضمن اول در ویندوز کامپایل کنید اگر برنامه مشکلی نداشت برای اندروید یا ios کامپایل کنید.
این روش در datasnap جواب گو نیست کمی فرمان دارد اگر کسی خواست بگویید تا برایتان شرح دهم.
منتظر سوالاتتون و مشکلاتتون و انتقادتون درمورد این تاپیک میباشم.(برای شادی روح اموات و شهدا یه صلوات بفرستید)

*دست علی یار و همراهتان* :تشویق: 
برای فارسی سازی یک یونیت رو دوست عزیزم niceboy درست کرده اون میتونه مشکل فارسی سازی رو تاحدودی حل کنه و تازه در بانک اطلاعاتی و این string grid فارسی درست نشون داده میشه ولی در گذاشتن علامت هایی چون (.,/{}-=*&#@#!$^%)کمی مشکل داره

----------


## ابوالفضل عباسی

درضمن این نکته رو متذکر میشوم که این دقیقا مانند dbgrid در ویندوز عمل میکند با این تفاوت که خودش بعد از ثبت کردن بانک خودش بانک رو براساس کد sort میکنه.
ولی این string grid یک معایبی که داره این هست که on Change وجود نداره و برخی از قابلیت های کاربردی که dbgrid داره ولی string grid نداره.
اساسا string grid برای اتصال به بانک نیست.بلکه جدولی هست که خودتون بسازید ولی در اندروید از هیچی بهتره :چشمک: .
چون در اندروید اگر نخواهید از string grid استفاده کنید مجبورید با panel و Frame یه dbgrid بسازید و این خودش یعنی چرخ رو بسازید(من خودم از روش string grid خبر نداشتم وقت صرف کردم و با frame یه dbgrid ساختم و وقتی دیدم با string grid هم میشده کلی ناراحت شدم که تحقیق نکرده وقت صرف یه چیز الکی کردم. :ناراحت:  ولی ارزش تجربه کردنش رو داشت.)

موفق باشید *دست علی همراهتان*

----------


## e_q_sun

سلام دوستان.چند تا  راهنمایی میخواستم
من دیتا بیس رو به برنامم اضافه کردم
اول اینکه آدرس دیتا بیس رو چجوری واسه آندروید تعریف کنم
ینی من الان دارم توی ویندوز برنامه مینویسم و دیتابیسم توی یه آدرس خاصه حالا وقتی کامپایل میکنم چجوری باید واسه برنامم مشخص کنم که دیتا بیس توی چه آدرسیه
دوم اینکه واسه اینکه بتونم کاری کنم با نصب برنامه توی گوشی دیتابیس هم باهاش اضافه بشه چکار باید بکنم
سوم اینکه دستورات اضافه کردن رکورد و حذف کردن و... چیه
ممنون

----------


## nice boy

آدرس دیتابیس به صورت زیر هست
{$IFDEF Android}
    FullPath := TPath.Combine(TPath.GetHomePath, DBName);
    {$ENDIF}

برای انتقال فایل به دیتابیس باید در قسمت Project -> Deploment فایل مربوطه رو اضافه کنی و مسیر بهش بدی
بهتره مسیر .\assets\internal\ رو بهش بدی

حذف و اضافه کردن رکود هم که مثل ویندوز هست فرقی نمی کنه. از FireDac استفاده کن

----------


## e_q_sun

> آدرس دیتابیس به صورت زیر هست
> {$IFDEF Android}
>     FullPath := TPath.Combine(TPath.GetHomePath, DBName);
>     {$ENDIF}


این دستور رو کجا باید اضافه کنم؟

----------


## nice boy

var  FullPath: string;
  DBName: string;
begin
  Result := False;
  try
    DBName := 'testdb.db';
    {$IFDEF Android}
    FullPath := TPath.Combine(TPath.GetHomePath, DBName);
    {$ENDIF}
    {$IFDEF MSWINDOWS}
    FullPath := '..\' + DBName;
    {$ENDIF}
    if FileExists(FullPath) then
    begin


      FDConnection1.LoginPrompt := False;
      FDConnection1.Params.Clear;
      FDConnection1.Params.Add('DriverID=SQLite');
      FDConnection1.Params.Add('Database='+ FullPath);
      FDConnection1.Open;
      Result := True;
    end
    else
    begin


    end;
  except
    on E: Exception do
    begin


    end;
  end;


end;

----------


## e_q_sun

> var  FullPath: string;
>   DBName: string;
> begin
>   Result := False;
>   try
>     DBName := 'testdb.db';
>     {$IFDEF Android}
>     FullPath := TPath.Combine(TPath.GetHomePath, DBName);
>     {$ENDIF}
> ...


ممنون از راهنماییتون

لطفا اگر یه برنامه ساده که دیتابیست بهش معرفی شده باشه و مثلا رکورد بشه اضافه کرد یا حذف کرد  دارید برام بفرستید
میخوام از طریق اون الگو برداری کنم تا بتونم هم یه چیزی یاد بگیرم هم برنامه خودمو کامل کنم

ممنون میشم

----------


## ابوالفضل عباسی

دوست عزیز.
دیگه همه چیز گفته شده.دیگه فقط کافیه خودتون بنویسید.

در پوشه sample های دلفی نمونه برنامه زیاد هست،به آنجا رجوع کنید.

----------


## soks_sia

سلام دوستان.

آیا راهی وجود داره که بشه به بانک اطلاعاتی sql server وصل شد. از طریق شبکه یا اینترنت؟ من از دلفی توکیو استفاده میکنم

ممنون میشم راهنمایی کنین

----------


## nice boy

> سلام دوستان.
> 
> آیا راهی وجود داره که بشه به بانک اطلاعاتی sql server وصل شد. از طریق شبکه یا اینترنت؟ من از دلفی توکیو استفاده میکنم
> 
> ممنون میشم راهنمایی کنین


بله با استفاده از firedac میشه

----------


## ابوالفضل عباسی

> سلام دوستان.
> 
> آیا راهی وجود داره که بشه به بانک اطلاعاتی sql server وصل شد. از طریق شبکه یا اینترنت؟ من از دلفی توکیو استفاده میکنم
> 
> ممنون میشم راهنمایی کنین


کافیست Fdconnection قسمت driverid رو روی mssql قرار داده، سرور و یوزر و پسورد رو بهش بدین تا کانکت بشه.

----------

