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

📄 database.cpp

📁 中国电信文字短信收发程序。采用电信提供的接口动态库。
💻 CPP
字号:
// DataBase.cpp: implementation of the CDataBase class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "HHSJ_Msg.h"
#include "DataBase.h"
#include "DataStruct.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CDataBase::CDataBase()
{
	pDatabase = new CDatabase();
}

CDataBase::~CDataBase()
{
	DisConnect();
	if (pDatabase!=NULL) 
	{
		if (pDatabase->IsOpen())
			pDatabase->Close();
		delete(pDatabase);
		pDatabase = NULL ;
	}
}

void CDataBase::DisConnect()
{
	if ( ( pDatabase!=NULL ) && ( pDatabase->IsOpen() ) )
		pDatabase->Close();
}
//参数:从配置文件读取数据库联接参数时候的小节名字
bool CDataBase::CreateConnect(CString IniSection)
{
	CString strDSN=_T("");//数据库别名
	CString strUserName=_T("");//用户名
	CString strPWD=_T("");//密码
	int LoginTimeOut=10;//数据库连接超时默认时间(秒)
	int QueryTimeOut=5;//查询超时默认时间(秒)	
	
	if (pDatabase->IsOpen()) return true;	//如果已经连接,立即返回

	{//从配置文件读取连接信息		
		strDSN=ReadIni(IniSection,"DSN");
		strUserName=ReadIni(IniSection,"DatabaseUserName");
		strPWD=ReadIni(IniSection,"PASSWORD");
    	LoginTimeOut=atoi(ReadIni(IniSection,"LoginTimeOut"));
		QueryTimeOut=atoi(ReadIni(IniSection,"QueryTimeOut"));
	}
    pDatabase->SetLoginTimeout(LoginTimeOut);//设置连接超时时间默认为10秒
	pDatabase->SetQueryTimeout(QueryTimeOut);//设置查询超时时间默认为5秒
	
	char str[100];//生成连接字符串
	str[0]='\0';
	strcpy(str,"DSN=");
	strcat(str,strDSN);
	strcat(str,";UID=");
	strcat(str,strUserName);
	strcat(str,";PWD=");
	strcat(str,strPWD);

	try
	{
		if (!(pDatabase->OpenEx(_T(str),CDatabase::noOdbcDialog )))
		{
			AfxMessageBox("数据库连接失败,请检查网络和数据库");
			return false;//连接失败
		}
		return true;
	}catch(...)
	{
		AfxMessageBox("连接数据库时发生了异常或者数据库连接失败,请检查网络和数据库");
		return false;//连接失败
	}
}
bool CDataBase::NoRetExecuteSQL(char *strSQL)//writted by hcl
{
	CString str=_T("");
	str.Format("%s",strSQL);
	if ((str.Find("select"))!=-1) return false;//此语句是有返回值的SQL语句,不执行
	if (!(pDatabase->IsOpen())) return false;
	try 
	{
		pDatabase->ExecuteSQL( str );
	}
	catch(CDBException* e)
	{
		
		WriteLogFile("Exception When Write To Database");
		WriteLogFile(e->m_strError);
		WriteLogFile(e->m_strStateNativeOrigin);
		WriteLogFile(str);
		e->Delete();
		return false;
	}
	return true;
}

⌨️ 快捷键说明

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