核心提示: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。server
使用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设备就好了。