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