CONST MB_OK
= 0 'OK button only CONST MB_OKCANCEL
= 1 'OK & Cancel CONST MB_ABORTRETRYIGNORE
= 2 'Abort, Retry & Ignore CONST MB_YESNOCANCEL
= 3 'Yes, No & Cancel CONST MB_YESNO
= 4 'Yes & No CONST MB_RETRYCANCEL
= 5 'Retry & Cancel CONST MB_CANCELTRYCONTINUE
= 6 'Cancel, Try Again & Continue CONST MB_ICONSTOP
= 16 'Error stop sign icon CONST MB_ICONQUESTION
= 32 'Question-mark icon CONST MB_ICONEXCLAMATION
= 48 'Exclamation-point icon CONST MB_ICONINFORMATION
= 64 'Letter i in a circle icon CONST MB_DEFBUTTON1
= 0 '1st button default(left) CONST MB_DEFBUTTON2
= 256 '2nd button default CONST MB_DEFBUTTON3
= 512 '3rd button default(right) CONST MB_APPLMODAL
= 0 'Message box applies to application only CONST MB_SYSTEMMODAL
= 4096 'Message box on top of all other windows CONST MB_SETFOCUS
= 65536 'Set message box as focus CONST IDOK
= 1 'OK button pressed CONST IDCANCEL
= 2 'Cancel button pressed CONST IDABORT
= 3 'Abort button pressed CONST IDRETRY
= 4 'Retry button pressed CONST IDIGNORE
= 5 'Ignore button pressed CONST IDYES
= 6 'Yes button pressed CONST IDNO
= 7 'No button pressed CONST IDTRYAGAIN
= 10 'Try again button pressed CONST IDCONTINUE
= 1 'Continue button pressed
Answer = MessageBox(0, "The program ran into a problem it couldn't handle and needs to exit." + message, "Error", MB_OK + MB_SETFOCUS + MB_ICONEXCLAMATION)
Answer
= MessageBox
(0, LTRIM$(STR$(errorcode
)) + " (" + sqlstate
+ ")", "Error", MB_OK
+ MB_SETFOCUS
+ MB_ICONEXCLAMATION
)
FUNCTION DB_Open
(host_ip$
, user_name$
, user_password$
, DB_name$
) 'if DB_name="" then no database is selected DB_Last_Error = ""
'create new handle
'create new object
Database
(DB
).Object
= mysql_init
(0):
IF Database
(DB
).Object
= 0 THEN DB_Critical_Error
"mysql_init failed" 'attempt to connect
object%&
= mysql_real_connect_dont_open
(Database
(DB
).Object
, host_ip$
+ CHR$(0), user_name$
+ CHR$(0), user_password$
+ CHR$(0), 0, 0, 0, 0) object%&
= mysql_real_connect
(Database
(DB
).Object
, host_ip$
+ CHR$(0), user_name$
+ CHR$(0), user_password$
+ CHR$(0), DB_name$
+ CHR$(0), 0, 0, 0) DB_Last_Error = mysql_error(Database(DB).Object)
Database(DB).Object = 0 'free index
DB_Selected = DB
DB_Open = DB
SUB DB_QUERY
(mysql_command$
) IF DB_Selected
< 0 OR DB_Selected
> DB_Last
THEN DB_Critical_Error "DB_QUERY: Invalid handle"
IF Database
(DB_Selected
).Object
= 0 THEN DB_Critical_Error "DB_QUERY: Invalid handle"
DB_Last_Error = ""
result
= mysql_query
(Database
(DB_Selected
).Object
, mysql_command$
+ CHR$(0)) IF mysql_error
(Database
(DB_Selected
).Object
) <> "" THEN MySQLError mysql_errno(Database(DB_Selected).Object), mysql_sqlstate(Database(DB_Selected).Object), mysql_error(Database(DB_Selected).Object)
affectedRows = mysql_affected_rows(Database(DB_Selected).Object)
returnedID = mysql_insert_id(Database(DB_Selected).Object)
DB_Last_Error = mysql_error(Database(DB_Selected).Object)
mysql_result = mysql_store_result(Database(DB_Selected).Object)
'...todo...
columns = mysql_num_fields(mysql_result)
rows = mysql_num_rows(mysql_result)
mysql_row = mysql_fetch_row(mysql_result)
mem_mysql_row
= _MEM(mysql_row
, columns
* LEN(an_offset%&
)) mysql_lengths = mysql_fetch_lengths(mysql_result)
mem_mysql_lengths
= _MEM(mysql_lengths
, columns
* 4) mem_field
= _MEM(_MEMGET(mem_mysql_row
, mem_mysql_row.OFFSET
+ (x
- 1) * LEN(an_offset%&
), _OFFSET), length
) DB_RESULT
(x
, y
) = SPACE$(length
) _MEMGET mem_field
, mem_field.OFFSET
, DB_RESULT
(x
, y
) selectedRows
= UBOUND(db_result
, 2) mysql_free_result mysql_result