www.pudn.com > GSMTest1.rar > Database.cpp


// Database.cpp: implementation of the CDatabase class. 
// 
////////////////////////////////////////////////////////////////////// 
#include "Database.h" 
////////////////////////////////////////////////////////////////////// 
// Construction/Destruction 
////////////////////////////////////////////////////////////////////// 
 
CDatabase::CDatabase() 
{ 
	mysql_init(&mysql); 
} 
 
CDatabase::~CDatabase() 
{ 
	mysql_close(&mysql); 
	mysql_free_result(query); 
} 
 
BOOL CDatabase::SelectAll(Data_Param *para) 
{ 
//	mysql_free_result(query); 
	unsigned int i=0; 
 
	char str[500]; 
	sprintf(str,"select %s from %s",para->select_exp,para->tab_name); 
	if(!FindSave(str)) 
	{ 
		return false; 
	} 
	return true; 
} 
 
BOOL CDatabase::DelRecord(Data_Param *para) 
{ 
	char str[80]; 
	sprintf(str,"delete from %s where %s",para->tab_name,para->where_def); 
	if(mysql_query(&mysql,str)) 
	{ 
		return false; 
	} 
	return true; 
} 
 
BOOL CDatabase::InsertRecord(Data_Param *para) 
{ 
	char str[500]; 
	sprintf(str,"insert into %s values(%s)",para->tab_name,para->insert_val); 
 
	if(mysql_query(&mysql,str)) 
	{ 
		return false; 
	} 
 
	return true; 
} 
 
BOOL CDatabase::SelectRecord(Data_Param *para) 
{ 
//	mysql_free_result(query); 
	unsigned int i=0; 
	char str[500]; 
	sprintf(str,"select %s from %s where %s",para->select_exp,para->tab_name,para->where_def); 
	if(!FindSave(str)) 
	{ 
		return false; 
	} 
 
	return true; 
} 
 
BOOL CDatabase::SelectDB(Data_Param *para) 
{ 
	if (mysql_select_db(&mysql,para->db_name)) 
		return false;	 
	else 
		return true; 
} 
 
char * CDatabase::OutErrors() 
{ 
 	return(char *)(mysql_error(&mysql)); 
} 
 
BOOL CDatabase::FindSave(char *str) 
{ 
	if(mysql_query(&mysql,str)) 
		return false; 
	query=mysql_store_result(&mysql); 
	return true; 
} 
 
BOOL CDatabase::UpdateRecord(Data_Param *para) 
{ 
	char str[500]; 
	 
	sprintf(str,"update %s set %s where %s",para->tab_name,para->set_exp,para->where_def); 
	if(mysql_query(&mysql,str)) 
	{ 
		return false; 
	} 
	return true; 
} 
 
my_ulonglong CDatabase::GetRowNum() 
{ 
   return (mysql_num_rows(query)); 
} 
 
MYSQL_ROW CDatabase::GetRecord() 
{ 
	return (row = mysql_fetch_row(query)); 
} 
 
BOOL CDatabase::ConnectDB() 
{ 
	Database_Param p; 
	p.host="127.0.0.1"; 
	p.db="trans"; 
	p.user="trans"; 
	//p.user="root"; 
	p.password="trans"; 
	//p.password="810812"; 
	p.port=3306; 
	 
	if (!mysql_real_connect(&mysql,p.host,p.user,p.password,p.db,p.port,p.unix_socket,p.client_flag)) 
	{ 
          OutErrors(); 
		  return false; 
	} 
	return true; 
} 
void CDatabase::Close() 
{ 
//	mysql_close(); 
} 
unsigned int CDatabase::GetFieldNum() 
{ 
	return (mysql_num_fields(query)); 
} 
 
void CDatabase::FreeRecord() 
{ 
	mysql_free_result(query); 
} 
 
 
//int CDatabase::CreateDB(char *db) 
//{ 
// 	return (mysql_create_db(&mysql,db)); 
 
 
 
void CDatabase::SeekData(int offset) 
{ 
	mysql_data_seek(query,offset); 
} 
 
// 
//int CDatabase::DropDB(char *db) 
//{ 
//	return (mysql_drop_db(&mysql,db)); 
 
 
 
BOOL CDatabase::IsEnd() 
{ 
	return mysql_eof(query); 
} 
 
char* CDatabase::GetFieldName(int FieldNum) 
{ 
	field=mysql_fetch_field_direct(query,FieldNum); 
	return field->name; 
} 
 
 
char* CDatabase::GetClientInfo() 
{ 
 	return (char *)mysql_get_client_info(); 
} 
 
 
 
char* CDatabase::GetHostInfo() 
{ 
 	return (char *)mysql_get_host_info(&mysql); 
} 
 
 
int CDatabase::GetProtocolInfo() 
{ 
	return mysql_get_proto_info(&mysql); 
} 
 
 
char* CDatabase::GetServerInfo() 
{ 
 	return (char *)mysql_get_server_info(&mysql); 
} 
 
 
 
char* CDatabase::GetState() 
{ 
	char* state=(char *)mysql_stat(&mysql); 
		if(!state) 
			return OutErrors(); 
		return state; 
} 
 
BOOL CDatabase::ExecuteSQL(const char* strSQL,unsigned long Length) 
{ 
	if(mysql_real_query(&mysql,strSQL,Length)) 
		return false; 
	query=mysql_store_result(&mysql); 
		return true; 
}