http://narod.ru/disk/4702864000/lib_mysql.zip.html
Код:
//+------------------------------------------------------------------+
//| mysql.mqh |
//| Copyright © 2008, Berkers Trading |
//| http://quotar.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, Berkers Trading"
#property link "http://quotar.com"
#import "mysql_wrapper.dll"
string MT4_mysql_wrapper_version ();
int mysql_init (int db);
int mysql_errno (int MySQL);
string mysql_error (int MySQL);
int mysql_real_connect(int MySQL, string host, string user, string password, string DB, int port, int socket, int clientflag);
int mysql_real_query (int MySQL, string query, int length);
int mysql_query (int MySQL, string query);
void mysql_close (int MySQL);
int mysql_store_result(int MySQL);
int mysql_use_result (int MySQL);
string mysql_fetch_row (int result);
void MT4_mysql_fetch_row (int result, string& row[]);
void MT4_mysql_fetch_fields_string (int result, string& row[], int type);
int mysql_num_fields (int result);
string mysql_fetch_field (int result);
int mysql_num_rows (int result);
void mysql_free_result (int result);
int mysql_insert_id (int MySQL);
#import
#define MYSQL_VERBOSE 1
#define FIELD_NAME 0
#define FIELD_ORGNAME 1
#define FIELD_TABLE 2
#define FIELD_ORGTABLE 3
#define FIELD_DB 4
#define FIELD_CATALOG 5
#define FIELD_DEF 6
extern string MYSQL = "********************";
extern string Host = "localhost";
extern string User = "mql";
extern string Password = "apenstaart";
extern string Database = "forex";
extern int Port = 3306;
int giMySQL;
bool gbMySQLInitialized = FALSE;
int MySQL_Init() {
giMySQL = mysql_init(giMySQL);
if(giMySQL != 0 && MYSQL_VERBOSE > 0){
Print("MySQL allocated");
}
int liConnect = mysql_real_connect(giMySQL, Host, User, Password, Database, Port, NULL, 0);
if (liConnect == giMySQL){
if(MYSQL_VERBOSE > 0){
Print("MySQL connected");
}
gbMySQLInitialized = TRUE;
} else {
MySQL_NoError();
}
return(0);
}
int MySQL_DeInit(){
mysql_close(giMySQL);
return(0);
}
bool MySQL_NoError(){
int liError = mysql_errno(giMySQL);
if (liError > 0){
if(MYSQL_VERBOSE > 0) Print("MySQL error=", liError, " ", mysql_error(giMySQL));
return(FALSE);
}
return(TRUE);
}
bool MySQL_FetchRow(string sQuery, string &sResultSet[]){
int i;
if (gbMySQLInitialized == FALSE) return(FALSE);
if (MYSQL_VERBOSE > 1) Print(sQuery);
int liLength= StringLen(sQuery);
mysql_real_query(giMySQL, sQuery, liLength);
int liResult = mysql_store_result(giMySQL);
ArrayResize(sResultSet, mysql_num_fields(liResult));
MT4_mysql_fetch_row(liResult, sResultSet);
//for (i = 0; i < ArrayRange(sResultSet,0); i++){
// Print(i+"="+sResultSet[i]);
//}
mysql_free_result(liResult);
return(MySQL_NoError());
}
bool MySQL_FetchArray(string sQuery, string &sResultSet[][]){
int i,j;
if (gbMySQLInitialized == FALSE) return(FALSE);
if (MYSQL_VERBOSE > 1) Print(sQuery);
int liLength= StringLen(sQuery);
mysql_real_query(giMySQL, sQuery, liLength);
int liResult = mysql_store_result(giMySQL);
string lsResult[0];
int liNumRow = mysql_num_rows(liResult);
int liNumField = mysql_num_fields(liResult);
ArrayResize(lsResult, liNumField);
ArrayResize(sResultSet, liNumRow);
// string sFieldSet[7];
// ArrayResize(sFieldSet, mysql_num_fields(iResult));
// MT4_mysql_fetch_fields_string(iResult, sFieldSet,FIELD_NAME);
for (i = 0; i < liNumRow; i++){
MT4_mysql_fetch_row(liResult, lsResult);
for (j = 0; j < liNumField; j++){
sResultSet[i][j] = lsResult[j];
//Print(i+","+j+":="+sResultSet[i][j]);
}
}
mysql_free_result(liResult);
return(MySQL_NoError());
}