/*
; MYSQL_HANDLE = $mysql_connect(ADDRESS, PORT, OPTION, DATABASE, USER, PASS)
*/
alias mysql_connect {
var %conName = SQLcon $+ $crc($ticks $rand(0,128),0)
.comopen %conName ADODB.Connection
if (!$com(%conName)) error $scriptline COM error: $comerr
if ($com(%conName, CursorLocation, 5, integer, 3) == 0) {
error $scriptline Cannot set CursorLocation
}
if ($com(%conName, ConnectionString, 5, string, $ODBCString($1-)) == 0) {
error $scriptline Cannot set ConnectionString
}
if ($com(%conName, Open, 1) == 0) {
error $scriptline Cannot Open Connection
comShowLastError $scriptline %conName
}
return %conName
:error
if $com(%conName) {
.comclose %conName
}
}
alias -l clearCom {
if $com($1) {
.comclose $1
}
}
/*
; mysql_close MYSQL_HANDLE
*/
alias mysql_close {
if ( !$com($1)) {
error $scriptline Connection does not exist or already closed
}
elseif ($com($1, Close, 1) == 0) {
error $scriptline cannot close connection
comShowLastError $scriptline $1
}
.comclose $1
}
/*
; MYSQL_RESULT_HANDLE = $mysql_query(MYSQL_HANDLE, QUERY_STRING)
*/
alias mysql_query {
var %rsName = SQLres $+ $crc($ticks $rand(0,128),0)
.comopen %rsName ADODB.Recordset
if (!$com(%rsName)) error $scriptline COM error: $comerr
var %query = $2
var %x = 3
while (%x <= $0) {
%query = %query $+ , [ [ $+($,%x) ] ]
inc %x
}
if ($com(%rsName, Open, 1, string, %query, dispatch, $1, integer, 3, integer, 1) == 0) {
error $scriptline cannot execute query : $qt(%query)
comShowLastError $scriptline $1
}
return %rsName
}
alias -l comShowLastError {
clearCom Errz
clearCom Err1
if $com($2, Errors, 3, dispatch* Errz) {
if ($com(Errz, Count, 3) > 0) {
if ($com(Errz, Item, 3, int, 0, dispatch* Err1)) {
if ($com(Err1, Description, 3)) {
error $1 Last Error Was : $com(Err1).result
.comclose Err1
}
else {
error $1 cannot get last error!
}
}
else {
error $1 cannot get last error!
}
.comclose Errz
}
else {
error $1 cannot get last error!
}
}
}
/*
; mysql_free_result MYSQL_RESULT_HANDLE
*/
alias mysql_free_result {
if ($com($1, Close, 1) == 0) {
error $scriptline : cannot close RecordSet
comShowLastError $scriptline $1
}
.comclose $1
}
/*
; NUMBER_OF_ROWS = $mysql_num_rows(MYSQL_RESULT_HANDLE)
*/
alias mysql_num_rows {
if ($com($1, RecordCount, 3) == 0) {
error $scriptline cannot get RecordCount
comShowLastError $scriptline $1
}
return $com($1).result
}
/*
; MYSQL_ROW_HANDLE = $mysql_fetch_row(MYSQL_RESULT_HANDLE)
*/
alias mysql_fetch_row {
var %fsName = SQLrow $+ $crc($ticks $rand(0,128),0)
if ($com($1, Fields, 3, dispatch* %fsName) == 0) {
error $scriptline Cannot get row Fields
comShowLastError $scriptline $1
}
return %fsName
}
/*
; mysql_next_row MYSQL_RESULT_HANDLE
*/
alias mysql_next_row {
if ($com($1, MoveNext, 1) == 0) {
error $scriptline Cannot MoveNext
comShowLastError $scriptline $1
}
}
/*
; mysql_free_row MYSQL_ROW_HANDLE
*/
alias mysql_free_row {
.comclose $1
}
/*
; COLUMN_VALUE = mysql_row(MYSQL_ROW_HANDLE, ROW_NUMBER)
; COLUMN_NAME = mysql_row(MYSQL_ROW_HANDLE, ROW_NUMBER).Name
*/
alias mysql_row {
if ($2 == 0) {
if ($com($1, Count, 3) == 0) {
error $scriptline Cannot get Field count
comShowLastError $scriptline $1
}
return $com($1).result
}
else {
if ($com($1, Item, 1, integer, $calc($2 - 1), dispatch* SQLTEMP) == 0) {
error $scriptline Cannot get Field $2
comShowLastError $scriptline $1
}
if ($prop == Name) {
if ($com(SQLTEMP, Name, 3) == 0) {
error $scriptline Cannot get Value of Field $2
comShowLastError $scriptline $1
}
}
else {
if ($com(SQLTEMP, Value, 3) == 0) {
error $scriptline Cannot get Value of Field $2
comShowLastError $scriptline $1
}
}
var %result = $com(SQLTEMP).result
.comclose SQLTEMP
return %result
}
}
alias -l error {
echo 4 -s MYSQL_ERROR : line $1 : $2-
}
alias -l nop {
return
}
; Clears stuck COMs
alias mysql_clear {
var %x = $com(0)
while (%x > 0) {
comclose $com(%x)
dec %x
}
}
; MYODBC_CONNECTION_STRING = ODBCString(ADDRESS, PORT, OPTION, DATABASE, USER, PASS)
alias -l ODBCString {
tokenize 32 $1-
return Driver={MySQL ODBC 5.1 Driver};Server= $+ $1 $+ ;Port= $+ $2 $+ ;Option= $+ $3 $+ ;Database= $+ $4 $+ ;Uid= $+ $5 $+ ;Pwd= $+ $6- $+ ;
}
alias MYSQL {
return $readini($scriptdirmysql.ini, $1, $prop)
}