// mysql_dll.cpp : Defines the entry point for the DLL application. #include "stdafx.h" #include "stdlib.h" MYSQL *conn=NULL; MYSQL_RES *p_res_ptr=NULL; MYSQL_ROW sqlrows; BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { return TRUE; }
extern "C" int _declspec(dllexport) init_mysql_connection(char *str_server,char *str_username,char *str_pwd,char *str_Table) { conn=mysql_init(NULL); if(!conn) { printf("\nFailed to initate MySQL connection"); return 1; exit(0); } else { printf("\nSuccess to initate MySQL connection"); if (!mysql_real_connect(conn,str_server,str_username,str_pwd,str_Table,0,NULL,0)) { printf( "Failed to connect to MySQL: Error: %s\n", mysql_error(conn)); } else { printf("\nLogged on to %s sucessfully",str_server); return 0; } return 0; } } extern "C" int _declspec(dllexport) close_mysql_connection() { if(conn=NULL) { printf("\nConnection is Null"); return 1; exit(0); } else { mysql_free_result(p_res_ptr); printf("\nClose connection"); mysql_close(conn); return 0; } } //"show status like \'qcache%\'" extern "C" int _declspec(dllexport) get_mysql_table_query(char *str_query) { int res=0; res=mysql_query(conn,str_query); if(res) { printf("Failed to mysql query: Error: %s\n", mysql_error(conn)); return 1; } else { printf("\nSucess in Mysql Query"); return 0; } } extern "C" int _declspec(dllexport) get_mysql_query_data(char *str_query,char *str_data) { unsigned long u1_numrow=0; unsigned int i_index = 0; p_res_ptr=mysql_use_result(conn); if(p_res_ptr){ while((sqlrows=mysql_fetch_row(p_res_ptr))){ if(*sqlrows[0]=*str_query) { strcpy(str_data,sqlrows[1]); } } } return NULL; } lr 9.1中代码: Action() { int i=0; double x; char *str_data; str_data=(char *)malloc(20*sizeof(char)); lr_load_dll("D:\\vc\\mysql_dll\\Debug\\mysql_dll.dll"); i= init_mysql_connection("localhost","root","123456","mysql"); lr_output_message("%d",i); for(;;) { get_mysql_query_data("Qcache_hits",str_data); i=get_mysql_table_query("show status like \'qcache%\'"); lr_output_message("%d",i); x = atof(str_data); lr_user_data_point("hits",x); lr_think_time(5); } lr_output_message("%d",x); close_mysql_connection(); return 0; }
|