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;
}