您现在的位置:首页 >> 其它平台 >> 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.2ccc.com) © 2017 版权所有 All Rights Reserved.
  • 沪ICP备05001939号