📄 myadoclass.cpp
字号:
// LRunSql2.cpp: implementation of the LRunSql2 class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "jiasg.h"
#include "myadoclass.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
_ConnectionPtr LRunSql::m_database;
LRunSql::LRunSql()
{
m_recordset.CreateInstance(__uuidof(Recordset));
}
LRunSql::~LRunSql()
{
}
bool LRunSql::BeginTrans()
{
return (!FAILED(m_database->BeginTrans()));
}
bool LRunSql::CheckSQLResult(CString sql)
{
if(!this->RunSQL(sql))
return false;
else
{
if(!this->m_recordset->adoEOF)
return true;
else
return false;
}
return true;
}
bool LRunSql::Close()
{
return (!FAILED(m_database->Close()));
}
bool LRunSql::CommitTrans()
{
return (!FAILED(m_database->CommitTrans()));
}
bool LRunSql::ConnectDataBase()
{
try{
m_database->Open(L"student","","",-1);
}
catch(...)
{
::ShellExecute(NULL,"open","AutoConfig.exe",NULL,NULL,SW_HIDE);
return false;
}
return true;
}
bool LRunSql::RunSQL(CString sql)
{
_bstr_t sql_=sql;
try{
// m_recordset=m_database->Execute(sql_,NULL,adCmdText);
// m_recordset->Open((_bstr_t)sql,m_database.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); // 取得表中的记录
m_recordset->Open((_bstr_t)sql,m_database.GetInterfacePtr(),adOpenStatic, adLockOptimistic,adCmdText);
}
catch(_com_error& e)
{
ErrorsPtr pErrors=m_database->GetErrors();
if (pErrors->GetCount()==0)
{
//AfxMessageBox(e.ErrorMessage());
afxDump<<e.ErrorMessage();
}
else
{
for (int i=0;i<pErrors->GetCount();i++)
{
_bstr_t desc=pErrors->GetItem((long)i)->GetDescription();
// AfxMessageBox(desc);
afxDump<<(char*)desc;
}
}
return false;
}
return true;
}
bool LRunSql::RollbackTrans()
{
return (!FAILED(m_database->RollbackTrans()));
}
bool LRunSql::InitConnectPtr()
{
HRESULT hr;
try
{
hr=m_database.CreateInstance("ADODB.Connection");//创建Connection对象
if(SUCCEEDED(hr))
{
hr = m_database->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=student.mdb","","",adModeUnknown);///连接数据库
///上面一句中连接字串中的Provider是针对ACCESS2000环境的}
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
return false;
}
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -