数据库 Databases
Rexx能够使用下面列出的各种数据库。
- HSQLDB
- Oracle
- SQL Server
- MySQL
- MongoDB
单击以下链接后,可以找到Rexx数据库的所有信息 - https://rexxsql.sourceforge.net/
在我们的示例中,我们将使用MySQL DB作为示例。 因此,第一步是确保从Rexx SQL站点下载所需的驱动程序,以便Rexx程序可以相应地使用SQL。 因此,请遵循后续步骤以确保Rexx程序可以与MySQL数据库一起使用。
Step 1 - 从Rexx站点转到以下驱动程序下载页面 - https://sourceforge.net/projects/rexxsql/files/rexxsql/2.6/
Step 2 - 下载MYSQL驱动程序 - rxsql26B3_my_w32_ooRexx
Step 3 - 将内容解压缩到本地计算机。
Step 4 - 将解压缩文件夹的路径添加到计算机上的路径变量中。
对于所有后续示例,请确保以下指针到位 -
您已经创建了一个数据库TESTDB。
您已在TESTDB中创建了一个表EMPLOYEE。
此表包含FIRST_NAME,LAST_NAME,AGE,SEX和INCOME字段。
用户ID“testuser”和密码“test123”设置为访问TESTDB。
确保已下载mysql jar文件并将该文件添加到类路径中。
你已经完成了MySQL教程
数据库连接 (Database Connection)
要建立数据库连接,首先需要Rexxsql DLL,然后使用SQLConnect函数建立与数据库的连接。 下面给出了如何实现这一目的的语法和示例。
语法 (Syntax)
SQLConnect(cname,username,password,dbname)
参数 (Parameters)
cname - 这是给连接的名称。
username - 要连接到数据库的用户名。
password - 连接数据库的密码。
dbname - 要连接的数据库模式。
返回值 (Return Value)
值等于0表示数据库连接成功。
例子 (Example)
/* Main program */
Call RxFuncAdd 'SQLLoadFuncs', 'rexxsql', 'SQLLoadFuncs'
Call SQLLoadFuncs
say SQLConnect(c1,' testuser ',' test123','testdb')
上述程序的输出如下所示。
0
创建数据库表
连接到数据库后的下一步是在数据库中创建表。 以下示例说明如何使用Rexx在数据库中创建表。 Rexx SQL中的所有命令都是使用SQLCommand函数执行的。
语法 (Syntax)
SQLConnect(sname,statement)
参数 (Parameters)
sname - 这是要赋予要执行的语句的名称。
statement - 这是需要对数据库执行的语句。
返回值 (Return Value)
值等于0表示命令成功。
例子 (Example)
/* 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
数据库表上的操作
以下类型的操作通常在数据库表上执行。
Sr.No. | 操作和说明 |
---|---|
1 | 插入操作 当您想要将记录创建到数据库表中时,它是必需的。 |
2 | 读操作 对任何数据库的READ操作意味着从数据库中获取一些有用的信息。 |
3 | 更新操作 任何数据库上的UPDATE操作都意味着更新一个或多个已在数据库中可用的记录。 |
4 | 删除操作 如果要从数据库中删除某些记录,则需要DELETE操作。 |
5 | Closing a Connection 以下命令可用于关闭与数据库的连接。 |
执行交易
事务是一种确保数据一致性的机制。 交易具有以下四个属性 -
Atomicity - 事务完成或根本没有任何事情发生。
Consistency - 事务必须以一致状态启动,并使系统保持一致状态。
Isolation - 在当前事务之外不可见事务的中间结果。
Durability - 提交事务后,即使系统出现故障,影响也会持续存在。
这是一个如何实现事务的简单示例。
例子 (Example)
/* 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
提交操作 (Commit Operation)
提交操作告诉数据库继续执行操作并最终完成对数据库的所有更改。 在上面的示例中,这是通过以下命令实现的。
Sqlcommit()
回滚操作 (Rollback Operation)
如果您对一个或多个更改不满意并且想要完全还原这些更改,请使用回滚方法。 在上面的示例中,这是通过以下命令实现的。
SqlRollback()