您現在的位置:首頁 >> 其它平臺 >> IOS >> 內容

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

時間:2013/10/11 10:48:02 點擊:

  核心提示:Delphi XE4的發布讓很多Delphi開發者欣喜若狂,毫無疑問它使得Delphi開發更簡單且更容易被理解,而且讓開發無論是iPhone、iPad還是iPod的iOS平臺的應用成為可能。但是對于iOS的應用程序部署到iOS設備上有一個相當嚴重的限制:不允許與應用程序一起部署任何庫(*.dylib...

  Delphi XE4的發布讓很多Delphi開發者欣喜若狂,毫無疑問它使得Delphi開發更簡單且更容易被理解,而且讓開發無論是iPhone、iPad還是iPod的iOS平臺的應用成為可能。但是對于iOS的應用程序部署到iOS設備上有一個相當嚴重的限制:不允許與應用程序一起部署任何庫(*.dylib)。在你開發需要數據庫配合工作的應用程序之前,每個開發者都知道,要讓應用程序連接數據庫,要么在客戶端安裝數據庫,要么就是需要一個允許連接到數據庫的庫,但是這個限制意味著,如果要在iOS平臺上創建必須使用數據庫的業務類的應用程序,只有通過控件來實現了。

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

  • SQLite
  • Oracle
  • MySQL
  • PostgreSQL
  • InterBase ToGo

  UniDAC支持同時連接訪問以上所有數據庫,當然Devart也提供分別訪問以上單獨數據庫的相應控件,如LiteDAC、MyDAC等。

直接數據訪問或DataSnap

  在數用數據庫時,我們一般面臨一個宣傳:直接數據訪問或使用DataSnap。

  使用DataSnap的方法經常被介紹,但是由于使用DataSnap方法需要消耗大量的資源,我們認為現在移動設備的電池硬件性能,還達不到使用DataSnap方法的要求,固為了讓你開發的iOS應用程序發揮最大的性能,我們建議使用直連數據的方法。

iOS應用連接數據庫

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

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:

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

作者:hesj 錄入:baoqi_zhu 來源:原創
共有評論 0相關評論
發表我的評論
  • 大名:
  • 內容:
  • 盒子文章(www.srtxuk.icu) © 2019 版權所有 All Rights Reserved.
  • 滬ICP備05001939號
  • 快乐10分助手官网