PB นั้นจะใช้ transaction object ในการติดต่อระหว่างตัว application กับ database ซึ่งต้องมีการกำหนดค่าต่างๆก่อนจึงจะสามารถติดต่อกับ database ได้ แต่pb จะมีค่าที่ถูกสร้างขึ้นมาให้แล้วเรียกใช้งานได้เลยโดยที่ไม่ต้องไปทำการสร้างใหม่ก็คือ SQLCA(SQL Communication area) โดยเมื่อเริ่มทำงาน pb จะทำการกำหนด sqlca ให้เป็นแบบ Global variable ใว้ให้เลยทำให้เราสามารถที่จะทำการติดต่อกับ database ได้ตลอดเวลา นอกจากนี้แล้วเรายังสามารถที่จะกำหนด transaction ขึ้นมาใหม่ได้ด้วยโดยทำตามขั้นตอนดังนี้
- สร้างตัวแปรชนิด transaction
- สร้าง transaction object
- กำหนดรายละเอียดของ transaction
ฯลฯ
- ยกเลิกการใช้งาน Transaction
คราวนี้เรามดูรายละเอียดของค่าต่างๆที่เราต้องกำหนดเพื่อใช้ในการติดต่อกับ databaseกันนะครับ
| Property | ชนิดข้อมูล | ความหมาย | Profile Section |
| DBMS | String | กำหนดว่าต้องการติดต่อกับ database แบบ ODBC หรือ Native | DBMS |
| Database Name | String | ชื่อของ Database ที่เราจะติดต่อด้วย | Database |
| UserID | String | ชื่อของผู้ที่ต้องการติดต่อกับ database | |
| DBPass | String | ชื่อ รหัสผ่านของผู้ที่ต้องการติดต่อกับ database | Password |
| Lock | String | กำหนดการ lock และ isolate สำหรับ DBMS ที่รองรับเรื่องนี้ | Isolation Level |
| LogID | String | ชื่อของ ผู้ใช้ที่ login ไปยัง Database server | Login ID |
| LogPASS | String | ชื่อของ รหัสผ่านที่ login ไปยัง Database server | Login Password |
| ServerName | String | ชื่อของ server ที่ database เก็บอยู่ | Server Name |
| AutoCommit | Boolean | ทำการ update ข้อมูลทันทีโดยไม่ต้องรอคำสั่ง commit กำหนดค่าเป็น True หรือ False | AutoCommit Mode |
| DBParm | String | เป็นที่เก็บค่าต่างๆที่กล่าวมาทั้งหมดโดยใช้คอมม่าคั่นระหว่างรายละเอียดต่างๆ | |
| SQLReturnData | String | คืนค่าที่ระบุใว้ในการ connect กับ DBMS แต่ละแบบ | |
| SQLCode | Long | บอกว่าการ Connect นั้น สำเร็จหรือไม่ | |
| SQLNRows | Long | คืนค่าของจำนวน row ที่ SQL Statement เพิ่งจะ execute เสร็จ | |
| SQLDBCode | Long | คืนค่า error code | |
| SQLErrTxt | String | เก็บข้อความ error ในการติดต่อกับ database |
คำสั่งที่เกี่ยวกับจัดการ transaction
Connect ใช้ในการเชื่อมต่อกับ database
Disconnect ใช้ในการยกเลิกการเชื่อมต่อกับ database
Commit คือการยืนยันกับ database ว่าข้อมูลทั้งหมดที่เราทำการ update นั้นจะถูกบันทึกลง database แบบถาวร
Rollback คือการยกเลิกข้อมูลที่ถูก update แต่ยังไม่ได้ถูกบันทึกแบบถาวร
ในการทำงานจริงๆนั้นเราสามารถเพิ่มประสิทธิภาพให้กับการทำงานแบบ transaction ได้หลายวิธีด้วยกัน
- จำกัดจำนวน rowโดย user
- ฟังก์ชั่น rowcount()
- Retrieverow Event
return 1 เพื่อหยุดการ retrieve
- Retrieve Only as Need
การใช้ sort order ใน datawindow object จะทำให้ฟังก์ชั่นนี้ถูกยกเลิกไป
- Cancel Retrieval
DBCancel()
ใช้ return code ให้เป็น 1 ให้กับ event ที่เกี่ยวข้องกับการ retrieve
- Retrieve Rows To Disk
เป็นอย่างไรบ้างครับ มีความคิดเห็นตรงจุดไหนก็ เมล์มาบอกก็แล้วกัน บทความนี้มาจาก www.soopsawat.com


