DA13 – 在Data Abstract中使用NexusDB数据库

来源:互联网 发布:2016年淘宝交易额多少 编辑:程序博客网 时间:2024/06/08 12:23
 
DA13 – Data Abstract中使用NexusDB数据库
作者: Lauchlan Mackinnon
Email: LMackinnon (at) ozemail (dot) com (dot) au
RemObjects提示:虽然我们认为本文内容是正确的,但是我们不对此作任何的保证.我们很感谢Lauchlan创建了发布在此的文章.
提示2:一些图片被缩小了,但是你可以点击它们放大查看.
导论
当前两个最热门的Delphi技术是NexuxDB数据库和RemObjects Data Abstract N-层分布式应用开发架构. (Nexus DB是一款适合DelphiC++Builder开发者的超高速,拥有客户端及服务器端的数据库引擎。可内嵌于桌面应用程序,甚至能够成为你主要的数据库服务器。Nexus DB代表了新一代的数据库系统).然而我们如何同时使用它们? 本文回答这个问题.首先我们考虑如何安装NexusDB驱动并传入到Data Abstract,然后我们将基于一个NexusDB服务器创建一个应用程序.
安装NexusDB 驱动并传入:
首先我们将安装NexusDB驱动并传入.这里有两种情形: 或者你直接从Nexus获取NexusDB或者从RemObjects购买NexusDB驱动. 因为稍后将为NexusDB驱动包提供文档,本文将集中于在RemObjects Data Abstract下安装完全商业化的NexusDB.安装NexusDB驱动的步骤如下:
  1. NexusDB bonus目录C:/Program Files/NexusDB1/Bonus/RemObjects/拷贝DANexusDBDrv.dad文件到RemObjects Data Abstract BIN 目录:C:/Program Files/RemObjects Software/Data Abstract/Bin/
  2. 打开组件报:
    C:/Program Files/NexusDB1/Bonus/RemObjects/BuildPackagesAndDriver_D6.bpg
    并安装其中的两个包:
    DataAbstract_NexusDBDriver_D6.dpk (drivers)
    RemObjects_NexusDB_D6.dpk (transports)
提示: The DataAbstract_NexusDBDriver_D6.dpk 包使用NexusDB .在包的源文件中你将看到如下代码:
requires
RemObjects_Core_D6,
DataAbstract_Core_D6,
NexusDB105st60,
NexusDB105pt60,
NexusDB105tw60,
NexusDB105tn60,
NexusDB105re60,
NexusDB1051x60,
NexusDB105sq60,
NexusDB105db60;
这些行正是为当前的NexusDB 1.05.1包所写. 如你已经为其他的NexusDB包创建不同的 DataAbstract_NexusDBDriver_D6.dpk版本,例如这个包含在requires中的NexusDB103*单元,那么你需要修改required子句引用到最新版本.
同样对于传入包RemObjects_NexusDB_D6.dpk:
requires designide, RemObjects_Core_D6, NexusDB105ll60;
提示2: 如果提示一个错误说你需要重新编译DataAbstract_Core_D6.dpk包你需要照做.
作为选择,如果你不希望安装这个驱动,你可以通过在项目的uses子句中包含uDANexusDBDriver.pasNexusDB驱动包含到项目中.这等同于向窗体中拖放一个NexusDB驱动组件. 这时,NexusDB驱动需要安装在Data Abstract ,NexusDB传入需要安装在RemObjects.
使用NexusDB的项目
现在我们已经将NexusDB驱动安装在了DA,现在使用它!首先,点击File | New | Other 并选择RemObjects Data Abstract VCL Server项目:
项目配置如下,
向导生成在数据模块中使用不同驱动的服务端项目:
在这里我们使用NexusDB数据库服务,所以我们将这个驱动控件从DelphiData Abstract控件面板加入到数据模块, 并删除掉其他驱动:
在这个项目中我们使用运行在我们系统中的NexusDB服务.
首先双击Schema组件进入到Schema Modeler创建一个数据库连接.在连接面板中点击'+'按钮:
现在你可以配置NexusDB连接:
NexusDB 提供了配置连接的语法,登陆服务必须使用如下格式:
  • ipv4://[servername@]ip-or-dns
  • np://servername[@computername]
  • embedded://name
  • registered://name
提示 1:如果servername为空则默认为: embedded://default
提示 2: "registered://"允许你设置(嵌入的或远程的)服务引擎及数据模块中相关的组件,并将之注册为这个驱动.如果你查看驱动单元会发现nexusdb特殊接口允许你注册或反注册外部服务引擎.
使用如下代码注册你的NexusDBServer"myDBServer":
(uDANexusDBDriver.GetDriverObject as
INexusDBDriver).RegisterServerEngine(NexusDataModule.ServerEngine,'myDBServer');
 
数据库 database 登陆必须使用如下格式
  • alias://myAlias
  • path://myAliasPath
如果这个数据库设置了保护也可使用username password 登陆.一些连接字符串的范例:
NexusDB?Server=ipv4://NexusDB@127.0.0.1;Database=alias://myAlias;
NexusDB?Server=embedded://nxServerEngine_embedded;Database=path://myPath;
 
这时,我们希望连接到从SQL Server中导入到NenuxDBNorthwind数据库,使用NexusDB服务及"Northwind"别名.如下截图:
点击OK,查看Schema Modeler中的连接字符串:
将连接重命名为NexusDBConnection.
还是在Schema Modeler,在右下部的Data Explorer中浏览Northwind数据库的表:
拖动Customers表到左上部DataSet面板创建一个Customers数据集:
关闭Schema Modeler,保存变动,运行Data Abstract服务端:
关闭服务端并从RemObjects菜单中启动以便于让其在后面执行.
测试客户端
现在在项目管理器中打开客户端项目.在客户端的数据模块中,
右击数据模块并选择ClientDataModule Wizard菜单:
选择'Create Data Tables':
下面的步骤让向导生成CustomersDataTable:
在客户端窗体中,增加一个表格和navigation控件, 并将其连接到ClientDataModule中的datasource激活DataTable并运行客户端:
为了在客户端更新数据变更你当然要在服务端增加Business Processor.