00001 00011 #include "mysql_tool.h" 00012 00013 00014 MYSQL* sql_open(char* hostname, char* dbname, char* username, char* passwd, unsigned int tmot) 00015 { 00016 MYSQL* mysql; 00017 MYSQL* cnnct; 00018 00019 Buffer host; 00020 unsigned short port; 00021 00022 if (hostname==NULL || dbname==NULL || username==NULL || passwd==NULL) return NULL; 00023 00024 Buffer wrk = make_Buffer_bystr(hostname); 00025 decomp_hostport(wrk, &host, &port); 00026 free_Buffer(&wrk); 00027 if (host.buf==NULL) return NULL; 00028 00029 if (tmot==0) tmot = SQL_DEFAULT_TIMEOUT; 00030 00031 mysql = mysql_init(NULL); 00032 if (mysql==NULL) return NULL; 00033 00034 if (file_exist(SQL_CONF_FILE)) { 00035 mysql_options(mysql, MYSQL_READ_DEFAULT_FILE, SQL_CONF_FILE); 00036 } 00037 mysql_options(mysql, MYSQL_OPT_CONNECT_TIMEOUT, (char*)&tmot); 00038 00039 cnnct = mysql_real_connect(mysql, (char*)host.buf, username, passwd, dbname, (int)port, NULL, 0); 00040 if (cnnct==NULL) { 00041 mysql_close(mysql); 00042 mysql = NULL; 00043 return NULL; 00044 } 00045 00046 return mysql; 00047 } 00048 00049 00050 void sql_close(MYSQL* mysql) 00051 { 00052 if (mysql!=NULL) mysql_close(mysql); 00053 00054 return; 00055 } 00056