Rexx - 数据库



Rexx 能够与各种数据库协作,如下所示。

  • HSQLDB
  • Oracle
  • SQL Server
  • MySQL
  • MongoDB

所有关于 Rexx 数据库的信息都可以在您点击以下链接后找到:https://rexxsql.sourceforge.net/

Databases

在我们的示例中,我们将使用 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 表示数据库连接成功。

示例

/* Main program */ 
Call RxFuncAdd 'SQLLoadFuncs', 'rexxsql', 'SQLLoadFuncs' 
Call SQLLoadFuncs 
say SQLConnect(c1,' testuser ',' test123','testdb')

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

0

创建数据库表

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

语法

SQLConnect(sname,statement)

参数

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

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

返回值

值为 0 表示命令成功。

示例

/* Main program */ 
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 更新操作

任何数据库上的更新操作都意味着更新一个或多个已存在于数据库中的记录。

4 删除操作

当您希望从数据库中删除某些记录时,需要使用删除操作。

5 关闭连接

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

执行事务

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

  • 原子性 − 事务要么完成,要么根本不发生任何事情。

  • 一致性 − 事务必须从一致状态开始,并使系统处于一致状态。

  • 隔离性 − 事务的中间结果在当前事务之外不可见。

  • 持久性 − 一旦事务提交,其影响将是持久的,即使在系统故障后也是如此。

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

示例

/* Main program */ 
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() 
广告