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

📄 database.cpp

📁 vc6.0是一个很好的开放环境
💻 CPP
字号:
// DataBase.cpp: implementation of the CDataBase class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "DataBase.h"
#include "stdlib.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif


CString g_str;  //全局变量,操作数据库
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CDB::CDB()
{
	
}

CDB::~CDB()
{
	CloseDatabase();
}

BOOL CDB::ConnectDB(char *cIp, char *cDbName, char *cUserName, char *cPassWord)
{
	CString connStr;
	try
	{
		m_db.SetLoginTimeout(5);//add by chensq
		connStr.Format("DRIVER={SQL SERVER};Server=%s;Database=%s;UID=%s;PWD=%s",cIp,cDbName,cUserName,cPassWord);
		m_db.OpenEx(connStr,CDatabase::noOdbcDialog);
	}
	catch(...)
	{
		return false;
	}
	
    m_rs.m_pDatabase=&m_db;
	return true;
}

BOOL CDB::ExecuteSQL(CString &sql)
{
	TRACE1("%s",sql);
	m_db.ExecuteSQL(sql);
	return true;
}

void CDB::CloseDatabase()
{
	if(m_db.IsOpen())
		m_db.Close();
}

BOOL CDB::OpenTable(CString &strSql)
{
	if(m_rs.IsOpen())
	{
		m_rs.Close();
	}
	try
	{
		TRACE1("%s",strSql);
		m_rs.Open(CRecordset::snapshot,strSql,CRecordset::readOnly);
	}
    catch(...)
	{
		MessageBox(NULL,"打开数据库错误","err",0);
		m_rs.Close();
		return false;
	}
	if(!m_rs.IsOpen()) 
	{
		MessageBox(NULL,"无法连接数据库","err",0);
		return false;
	}
	return true;
}

BOOL CDB::GetFieldValue(char *cFieldName,int *iResult)
{
	CString str;
	m_rs.GetFieldValue(cFieldName,str);
    *iResult=atoi(str.GetBuffer(0));
    return true;
}

BOOL CDB::GetFieldValue(int iField, int *iResult)
{
	m_rs.GetFieldValue(iField,g_str);
    *iResult=atoi(g_str.GetBuffer(0));
    return true;
}

BOOL CDB::GetFieldValue(char *cFieldName, double *dResult)
{
	m_rs.GetFieldValue(cFieldName,g_str);
    *dResult=atof(g_str.GetBuffer(0));
	return true;
	
}

BOOL CDB::GetFieldValue(char *cFieldName, CString &strResult)
{
	m_rs.GetFieldValue(cFieldName,strResult);
	return true;
}

bool CDB::GetFieldValue(int iField, CString &strResult)
{
	m_rs.GetFieldValue(iField,strResult);
	return true;
}


BOOL CDB::IsEOF()
{
	return m_rs.IsEOF();
}

void CDB::MoveNext()
{
	m_rs.MoveNext();
}

void CDB::CloseRecordSet()
{
	m_rs.Close();
}


//事务处理
BOOL CDB::BeginTrans()
{
	return m_db.BeginTrans();
}

BOOL CDB::CommitTrans()
{
	return m_db.CommitTrans();
}

BOOL CDB::Rollback()
{
	return m_db.Rollback();
}


BOOL CDB::DBState() //数据库连接是否断开
{
	return m_db.IsOpen();
}

BOOL CDB::GetVarIntValue(char *cFieldName, int *iResult)  //得到长整数值
{
	CDBVariant m_varValue;
	m_rs.GetFieldValue(cFieldName,m_varValue);
	*iResult=m_varValue.m_lVal;
	return true;
}

⌨️ 快捷键说明

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