⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 database.cpp

📁 MySQL数据库的连接在DOS下执行的程序
💻 CPP
字号:
// Database.cpp: implementation of the CDatabase class.
//
//////////////////////////////////////////////////////////////////////
#include "Database.h"
#include <iostream.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[50];
	sprintf(str,"select * from %s",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);
   cout<<"执行语句..."<<endl;
	cout<<str<<endl;
	if(mysql_query(&mysql,str))
	{
		return false;
		cout<<"语句没执行成功!"<<endl;
	}

	return true;
}

BOOL CDatabase::SelectRecord(Data_Param *para)
{
//	mysql_free_result(query);
	unsigned int i=0;
	char str[80];
	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[150];
	
	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)
{
	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;
}

unsigned int CDatabase::GetFieldNum()
{
	return (mysql_num_fields(query));
}

void CDatabase::FreeRecord()
{
	mysql_free_result(query);
}

int CDatabase::CreateDB(char *db)
{
	return 0;//mysql_create_db(&mysql,db);
}

void CDatabase::SeekData(int offset)
{
	mysql_data_seek(query,offset);
}

int CDatabase::DropDB(char *db)
{
	return 0;//(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;
}

unsigned long * CDatabase::FetchLengths()
{
   return mysql_fetch_lengths(query);
}

int CDatabase::GetAffectedRows()
{
    int  rows;
	rows=(int)mysql_affected_rows(&mysql);
	return rows;
}

BOOL CDatabase::AddAccount()
{
	if(mysql_query(&mysql,"INSERT INTO subscriber(username,password) values('8001','9186')"))
	{
		return false;
	}

	return true;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -