ThaiPBL.com

PowerBuilder Library Thailand

อีเมล พิมพ์ PDF

Get Database info

วันนี้มีเรื่องของ API Function มาฝากครับเป็นฟังก์ชั่นในการอ่านค่าออกมาว่าตอนนี้เราติดต่อกับ Database engine ตัวไหนอยู่ รวมถึงชื่อ database ที่ทำการ connect อยู่และชื่อ user ด้วย ลองเอาไปประยุกต์ดัดแปลงใช้ดูนะครับ
เริ่มแรกก็ให้กำหนดตัวแปรแบบ Global External Functions ดังนี้ครับ

FUNCTION integer SQLGetInfo( long hconn, integer infotype, ref string infotypeptr, integer bufferlength, ref integer bufferlengthptr ) LIBRARY "odbc32.dll"

จากนั้นก็ทำการวางสคริปต์ด้านล่างนี้ลงไปในตำแหน่งที่เราต้องการอ่านค่า

string ls_dbms, ls_database, ls_user
integer li_length
CONSTANT integer SQL_DBMS_NAME = 17
CONSTANT integer SQL_DATABASE_NAME = 16
CONSTANT integer SQL_USER_NAME = 47
long ll_dbhandle
//
ls_dbms = space(256)
ls_database = space(256)
ls_user = space(256)
ll_dbhandle = SQLCA.DbHandle()
SQLGetInfo(ll_dbhandle, SQL_DBMS_NAME, ls_dbms, 255, li_length)
SQLGetInfo(ll_dbhandle, SQL_DATABASE_NAME, ls_database, 255,li_length)
SQLGetInfo(ll_dbhandle, SQL_USER_NAME, ls_user, 255, li_length)
//
MessageBox("Current DBMS" , trim(ls_dbms))
MessageBox("Current DATABASE" , trim(ls_database))
MessageBox("Current USER" , trim(ls_user))


ดังนั้นค่าที่คุณจะนำไปใช้จริงๆก็คือ

ls_dbms  คือชื่อของ DBMS

ls_database  คือชื่อของ database

ls_user  คือชื่อของ user