📄 database.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 + -