绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
DA13 – 在Data Abstract中使用NexusDB数据库
2022-04-28 11:33:48
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 驱动的步骤如下 :
  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.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');
 
数据库 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.
分享好友

分享这个小栈给你的朋友们,一起进步吧。

NexusDB
创建时间:2022-04-28 11:28:42
NexusDB
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • LCR_
    专家
戳我,来吐槽~