原創|使用教程|編輯:郝浩|2013-07-19 13:49:28.000|閱讀 1245 次
概述:Delphi XE4的發布讓開發iOS平臺的應用成為可能。Devart就為其提供了相應的數據庫連接控件,支持連接幾乎所有的流行數據庫。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Delphi XE4的發布讓很多Delphi開發者欣喜若狂,毫無疑問它使得Delphi開發更簡單且更容易被理解,而且讓開發無論是iPhone、iPad還是iPod的iOS平臺的應用成為可能。但是對于iOS的應用程序部署到iOS設備上有一個相當嚴重的限制:不允許與應用程序一起部署任何庫(*.dylib)。在你開發需要數據庫配合工作的應用程序之前,每個開發者都知道,要讓應用程序連接數據庫,要么在客戶端安裝數據庫,要么就是需要一個允許連接到數據庫的庫,但是這個限制意味著,如果要在iOS平臺上創建必須使用數據庫的業務類的應用程序,只有通過控件來實現了。
Devart就提供了相應的數據庫連接控件,支持連接幾乎所有的流行數據庫,不需要安裝客戶端軟件,也不需要庫。所以iOS的庫(*.dylib)部署限制將不適用于使用UniDAC開發的應用程序。現階段Devart數據庫連接控件支持的訪問的數據庫有:
UniDAC支持同時連接訪問以上所有數據庫,當然Devart也提供分別訪問以上單獨數據庫的相應控件,如LiteDAC、MyDAC等。
在數用數據庫時,我們一般面臨一個宣傳:直接數據訪問或使用DataSnap。
使用DataSnap的方法經常被介紹,但是由于使用DataSnap方法需要消耗大量的資源,我們認為現在移動設備的電池硬件性能,還達不到使用DataSnap方法的要求,固為了讓你開發的iOS應用程序發揮最大的性能,我們建議使用直連數據的方法。
UniDAC在移動應用開發中的使用方式,和在普通桌面應用的方式類似,首選需要將TUniConnection、TUniQuery和其他必要控件放到窗體中。接下來的步驟將會根據需要連接的數據庫不同而有所不同。
由于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的連接方式如下:
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的設置方式也類似,在此就不累述了。
應用程序如果要與本地數據庫連接的話,就必須進行部署,方法很簡單,使用Project->Deployment:
連接數據庫到文件列表后,進行部署到iOS設備就行了。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網