Rexx - ฐานข้อมูล
Rexx มีความสามารถในการทำงานกับฐานข้อมูลที่หลากหลายซึ่งแสดงไว้ด้านล่าง
- HSQLDB
- Oracle
- เซิร์ฟเวอร์ SQL
- 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
คุณได้สร้างตาราง EMPLOYEE ใน TESTDB
ตารางนี้มีฟิลด์ FIRST_NAME, LAST_NAME, AGE, SEX และ INCOME
ID ผู้ใช้ "testuser" และรหัสผ่าน "test123" ถูกตั้งค่าให้เข้าถึง TESTDB
ตรวจสอบให้แน่ใจว่าคุณได้ดาวน์โหลดไฟล์ jar mysql และเพิ่มไฟล์ลงใน classpath ของคุณ
คุณได้ผ่านการสอน 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 | อัปเดตการทำงาน การดำเนินการ UPDATE บนฐานข้อมูลใด ๆ หมายถึงการอัปเดตระเบียนหนึ่งรายการขึ้นไปซึ่งมีอยู่แล้วในฐานข้อมูล |
4 | ลบการทำงาน จำเป็นต้องดำเนินการ DELETE เมื่อคุณต้องการลบบางระเบียนออกจากฐานข้อมูลของคุณ |
5 | การปิดการเชื่อมต่อ คำสั่งต่อไปนี้สามารถใช้เพื่อปิดการเชื่อมต่อกับฐานข้อมูล |
การทำธุรกรรม
ธุรกรรมเป็นกลไกที่ทำให้ข้อมูลมีความสอดคล้องกัน ธุรกรรมมีคุณสมบัติสี่ประการดังต่อไปนี้ -
Atomicity - ไม่ว่าธุรกรรมจะเสร็จสมบูรณ์หรือไม่มีอะไรเกิดขึ้นเลย
Consistency - ธุรกรรมต้องเริ่มต้นในสถานะที่สอดคล้องกันและปล่อยให้ระบบอยู่ในสถานะที่สอดคล้องกัน
Isolation - ผลลัพธ์ระดับกลางของธุรกรรมจะไม่ปรากฏนอกธุรกรรมปัจจุบัน
Durability - เมื่อมีการทำธุรกรรมแล้วผลกระทบจะคงอยู่แม้ระบบจะล้มเหลวก็ตาม
นี่คือตัวอย่างง่ายๆของการใช้ธุรกรรม
ตัวอย่าง
/* 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()