Rexx - 数据库

Rexx 能够使用下面列出的各种数据库。

  • HSQLDB
  • Oracle
  • SQL Server
  • MySQL
  • MongoDB

点击以下链接即可找到Rexx数据库的所有信息 − https://rexxsql.sourceforge.net/

数据库

在我们的示例中,我们将使用 MySQL DB 作为示例。 因此,第一步是确保从 Rexx SQL 站点下载所需的驱动程序,以便 Rexx 程序可以相应地使用 SQL。 因此,请按照后续步骤确保Rexx程序可以与MySQL数据库配合使用。

步骤 1 − 从 Rexx 站点转至以下驱动程序下载页面 − https://sourceforge.net/projects/rexxsql/files/rexxsql/2.6/

步骤 2 − 下载 MYSQL 驱动程序 - rxsql26B3_my_w32_ooRexx

步骤 3 − 将内容解压到本地计算机。

步骤 4 − 将解压文件夹的路径添加到您计算机上的路径变量中。

对于所有后续示例,请确保以下指针已就位 −

  • 您已创建数据库 TESTDB。

  • 您已在 TESTDB 中创建了一个表 EMPLOYEE。

  • 该表包含字段 FIRST_NAME、LAST_NAME、AGE、SEX 和 INCOME。

  • 设置用户 ID"testuser"和密码"test123"来访问 TESTDB。

  • 确保您已下载 mysql jar 文件并将该文件添加到类路径中。

  • 您已完成 MySQL 教程

数据库连接

要建立数据库连接,首先需要Rexxsql DLL,然后使用SQLConnect函数建立与数据库的连接。 下面给出了如何实现这一点的语法和示例。

语法

SQLConnect(cname,username,password,dbname) 

参数

  • cname − 这是为连接指定的名称。

  • username − 连接数据库的用户名。

  • password − 连接数据库的密码。

  • dbname − 要连接的数据库架构。

返回值

等于0的值表示数据库连接成功。

示例

/* 主程序 */
Call RxFuncAdd 'SQLLoadFuncs', 'rexxsql', 'SQLLoadFuncs' 
Call SQLLoadFuncs 
say SQLConnect(c1,' testuser ',' test123','testdb')

上述程序的输出如下所示。

0

创建数据库表

连接到数据库后的下一步是在我们的数据库中创建表。 以下示例显示如何使用 Rexx 在数据库中创建表。 Rexx SQL 中的所有命令均通过使用 SQLCommand 函数执行。

语法

SQLConnect(sname,statement)

参数

  • sname − 这是要执行的语句的名称。

  • statement − 这是需要对数据库执行的语句。

返回值

值等于 0 表示命令成功。

示例

/* 主程序 */
Call RxFuncAdd 'SQLLoadFuncs', 'rexxsql', 'SQLLoadFuncs' 
Call SQLLoadFuncs 

if SQLConnect(c1,'testuser','test123','testdb') == 0 then say 'Connect Succedded' 
if SQLCommand(u1,"use testdb") == 0 then say 'Changed database to testdb' 
   sqlstr = 'create table employee (first_name char(20) not null, last_name 
   char(20),age int, sex   
   char(1), income float)' 

if SQLCommand(c2,sqlstr) == 0 then say 'Employee table created'

上述程序的输出如下所示。

Connect Succedded 
Changed database to testdb 
Employee table created 

对数据库表的操作

以下类型的操作最常在数据库表上执行。

序号 操作 & 描述
1 插入操作

当您想要将记录创建到数据库表中时,这是必需的。

2 读操作

对任何数据库的读取操作都意味着从数据库中获取一些有用的信息。

3 更新操作

任何数据库上的 UPDATE 操作都意味着更新数据库中已有的一条或多条记录。

4 删除操作

当您想从数据库中删除某些记录时,需要执行 DELETE 操作。

5 关闭连接

以下命令可用于关闭与数据库的连接。

执行事务

事务是一种确保数据一致性的机制。 事务具有以下四个属性 −

  • 原子性 − 一个事务是一个不可分割的工作单位,事务中包括的许多操作要么都做,要么都不做。

  • 一致性 − 事务必须是使数据库从一个一致性的状态变到另外一个一致性状态。一致性与原子性的密切相关的。

  • 隔离性 − 一个事务的执行不能被其他事务干扰。既一个事务内部操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能相互干扰。

  • 持久性 − 持续性也称永久性。指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的,接下来的其他操作或者故障对其没有任何的影响。

这是一个如何实现事务的简单示例。

示例

/* 主程序 */
Call RxFuncAdd 'SQLLoadFuncs', 'rexxsql', 'SQLLoadFuncs' 
Call SQLLoadFuncs 

if SQLConnect(c1,'testuser','test123','testdb') == 0 then say 'Connect Succedded' 
if SQLCommand(u1,"use testdb") == 0 then say 'Changed database to testdb' 
   sqlstr = "DELETE FROM EMPLOYEE WHERE AGE > 20" 

if SQLCommand(c2,sqlstr) == 0 then 
if sqlcommit() == 0 then say committed

上述程序的输出如下所示。

Connect Succedded 
Changed database to testdb 
COMMITTED

提交操作

提交操作告诉数据库继续操作并完成对数据库的所有更改。 在上面的示例中,这是通过以下命令实现的。

Sqlcommit() 

回滚操作

如果您对一项或多项更改不满意,并且想要完全恢复这些更改,请使用回滚方法。 在上面的示例中,这是通过以下命令实现的。

SqlRollback()