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是一款适合Delphi、C++Builder开发者的超高速,拥有客户端及服务器端的数据库引擎。可内嵌于桌面应用程序,甚至能够成为你主要的数据库服务器。Nexus DB代表了新一代的数据库系统).然而我们如何同时使用它们? 本文回答这个问题.首先我们考虑如何安装NexusDB驱动并传入到Data Abstract,然后我们将基于一个NexusDB服务器创建一个应用程序.
安装NexusDB 驱动并传入:
首先我们将安装NexusDB驱动并传入.这里有两种情形: 或者你直接从Nexus获取NexusDB或者从RemObjects购买NexusDB驱动. 因为稍后将为NexusDB驱动包提供文档,本文将集中于在RemObjects Data Abstract下安装完全商业化的NexusDB.安装NexusDB驱动的步骤如下:
- 从NexusDB bonus目录C:/Program Files/NexusDB1/Bonus/RemObjects/拷贝DANexusDBDrv.dad文件到RemObjects Data Abstract BIN 目录:C:/Program Files/RemObjects Software/Data Abstract/Bin/
- 打开组件报:
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包你需要照做.
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.pas将NexusDB驱动包含到项目中.这等同于向窗体中拖放一个NexusDB驱动组件. 这时,NexusDB驱动需要安装在Data Abstract ,而NexusDB传入需要安装在RemObjects.
使用NexusDB的项目
现在我们已经将NexusDB驱动安装在了DA中,现在使用它!首先,点击File | New | Other 并选择RemObjects Data Abstract VCL Server项目:
项目配置如下,
向导生成在数据模块中使用不同驱动的服务端项目:
在这里我们使用NexusDB数据库服务,所以我们将这个驱动控件从Delphi的Data 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');
使用如下代码注册你的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中导入到NenuxDB的Northwind数据库,使用NexusDB服务及"Northwind"别名.如下截图:
点击OK,查看Schema Modeler中的连接字符串:
将连接重命名为NexusDBConnection.
还是在Schema Modeler,在右下部的Data Explorer中浏览Northwind数据库的表:
拖动Customers表到左上部DataSet面板创建一个Customers数据集:
关闭Schema Modeler,保存变动,运行Data Abstract服务端:
关闭服务端并从RemObjects菜单中启动以便于让其在后面执行.
测试客户端
现在在项目管理器中打开客户端项目.在客户端的数据模块中,
右击数据模块并选择ClientDataModule Wizard菜单:
选择'Create Data Tables':
下面的步骤让向导生成Customers的DataTable:
在客户端窗体中,增加一个表格和navigation控件, 并将其连接到ClientDataModule中的datasource激活DataTable并运行客户端:
为了在客户端更新数据变更你当然要在服务端增加Business Processor.
- DA13 – 在Data Abstract中使用NexusDB数据库
- iOS:UIImage转为NSData的方法使用Core Data Binary Data存储在数据库中
- WP01 – 为什么实现Multi-Tier, 为什么使用 Data Abstract?
- WP01 – 为什么实现Multi-Tier, 为什么使用 Data Abstract?
- 使用数据库Data文件的MDF、LDF在DOS中创建数据库
- DA09 – 为什么用Data Abstract?
- 【更新】数据库解决方案Data Abstract 9发布丨附下载
- 【更新】数据库解决方案Data Abstract 9发布丨附下载
- 数据库解决方案Data Abstract 9发布丨附下载
- java中abstract怎么使用
- java中abstract怎么使用
- java中abstract怎么使用
- java中abstract怎么使用
- java中abstract怎么使用
- java中abstract怎么使用
- TClientDataSet[21]: 使用 ADT(Abstract Data Type) 字段
- 在ASP中使用数据库
- 在ASP中使用数据库
- 把握幸福,把握机会,把握命运
- 写教案javabean在JSP中的使用
- 最详细的SQL注入相关的命令整理
- (转)BeanUtils简介
- 在所有的弱点中,最大的弱点就是怕暴露弱点
- DA13 – 在Data Abstract中使用NexusDB数据库
- js出错,求解,源码如下
- Struts+Hibernate入门实例
- Sun JRE java虚拟机不能向下兼容之谜(Initializing Java loader)
- 编译linux内核生成的system.map文件详解
- 中国邮政绿卡网上查余额你也会
- An Introduction to Software Engineering
- js压缩时乱码问题
- js出错,求解