使用UniDAC在Delphi XE4中開發iOS應用

使用UniDAC在Delphi XE4中開發iOS應用

  核心提示:Delphi XE4的發佈讓不少Delphi開發者欣喜若狂,毫無疑問它使得Delphi開發更簡單且更容易被理解,並且讓開發不管是iPhone、iPad仍是iPod的iOS平臺的應用成爲可能。可是對於iOS的應用程序部署到iOS設備上有一個至關嚴重的限制:不容許與應用程序一塊兒部署任何庫(*.dylib...sql

  Delphi XE4的發佈讓不少Delphi開發者欣喜若狂,毫無疑問它使得Delphi開發更簡單且更容易被理解,並且讓開發不管是iPhone、iPad仍是iPod的iOS平臺的應用成爲可能。可是對於iOS的應用程序部署到iOS設備上有一個至關嚴重的限制:不容許與應用程序一塊兒部署任何庫(*.dylib)。在你開發須要數據庫配合工做的應用程序以前,每一個開發者都知道,要讓應用程序鏈接數據庫,要麼在客戶端安裝數據庫,要麼就是須要一個容許鏈接到數據庫的庫,可是這個限制意味着,若是要在iOS平臺上建立必須使用數據庫的業務類的應用程序,只有經過控件來實現了。數據庫

  Devart就提供了相應的數據庫鏈接控件,支持鏈接幾乎全部的流行數據庫,不須要安裝客戶端軟件,也不須要庫。因此iOS的庫(*.dylib)部署限制將不適用於使用UniDAC開發的應用程序。現階段Devart數據庫鏈接控件支持的訪問的數據庫有:服務器

  • SQLiteide

  • Oracle性能

  • MySQLspa

  • PostgreSQLcode

  • InterBase ToGoorm

  UniDAC支持同時鏈接訪問以上全部數據庫,固然Devart也提供分別訪問以上單獨數據庫的相應控件,如LiteDAC、MyDAC等。移動應用開發

直接數據訪問或DataSnap

  在數用數據庫時,咱們通常面臨一個宣傳:直接數據訪問或使用DataSnap。server

565×630

  使用DataSnap的方法常常被介紹,可是因爲使用DataSnap方法須要消耗大量的資源,咱們認爲如今移動設備的電池硬件性能,還達不到使用DataSnap方法的要求,固爲了讓你開發的iOS應用程序發揮最大的性能,咱們建議使用直連數據的方法。

iOS應用鏈接數據庫

  UniDAC在移動應用開發中的使用方式,和在普通桌面應用的方式相似,首選須要將TUniConnection、TUniQuery和其餘必要控件放到窗體中。接下來的步驟將會根據須要鏈接的數據庫不一樣而有所不一樣。

341×667

SQLite

  因爲SQLite是一個本地數據庫,因此 不須要主機和端口,只須要指定數據庫,硬盤驅動器上的數據庫文件路徑。

DocumentPath := TPath.GetDocumentsPath;

  若是應用第一次啓動時,還須要檢測是否SQLite數據庫存在於iOS設備上,用如下設置:

UniConnection.SpecificOptions.Values['ForceCreateDatabase'] := 'True';

  接下來最重要的,用如下代碼制定Provider:

var
  UniConnection:  TUniConnection;
begin
  UniConnection := TUniConnection.Create(nil);
  try
    UniConnection.ProviderName := 'SQLite';
 
    UniConnection.SpecificOptions.Values['ForceCreateDatabase'] := 'True';
    UniConnection.Database := IncludeTrailingPathDelimiter(TPath.GetDocumentsPath) + 'db.sqlite3';
 
    try
      UniConnection.Connect;
    except
      on E: Exception do
        ShowMessage(E.Message);
    end;
  finally
    UniConnection.Free;
  end;
end;

Oracle

  Oracle的鏈接方式以下:

UniConnection.SpecificOptions.Values['Direct'] := 'True';

  Oracle須要明顯的服務器的主機和端口,以及其SID或Service Name。須要使用如下方式設置:

UniConnection.Server := 'Host:Port:sid=SID';

  而後就是指定provider了:

var
  UniConnection:  TUniConnection;
begin
  UniConnection := TUniConnection.Create(nil);
  try
    UniConnection.ProviderName := 'Oracle';
 
    UniConnection.SpecificOptions.Values['Direct'] := 'True';
 
    UniConnection.Server := 'server:1521:orcl';
    UniConnection.Username := 'user_name';
    UniConnection.Password := 'password';
 
    try
      UniConnection.Connect;
    except
      on E: Exception do
        ShowMessage(E.Message);
    end;
  finally
    UniConnection.Free;
  end;
end;

  MySQL、PostgreSQL的設置方式也相似,在此就不累述了。

部署數據庫到iOS

  應用程序若是要與本地數據庫鏈接的話,就必須進行部署,方法很簡單,使用Project->Deployment:

212×546

  鏈接數據庫到文件列表後,進行部署到iOS設備就好了。

855×247

相關文章
相關標籤/搜索