使用前,先在查询分析器中执行SQL文件。然后在控制面板中建立用户DSN,数据源名为"eee",并更改默认数据为"Renshi". 具体内容请参考源代码(有详细注释)
数据库连接和执行SQL语句的类:
#if !defined AFX_CADO_H__ #define AFX_CADO_H__ #pragma once #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF") /*********************************************************************/ class CADO { private: _ConnectionPtr m_pConn; _RecordsetPtr m_pRS; public: CADO(); virtual ~CADO(); public: _RecordsetPtr& GetRS(CString strSQL); // 执行 返回记录集的SQL语句 BOOL Execute(CString strSQL); // 执行不返回记录集的SQL语句 }; /*********************************************************************/ #endif |
/*********************************************************************/
#include "stdafx.h"
#include "ADO.h"
/*********************************************************************/
#if !defined CATCH_ERROR
#define CATCH_ERROR \
{ \
CString strComError;\
strComError.Format("错误编号: %08lx\n错误信息: %s\
\n错误源: %s\n错误描述: %s",\
e.Error(),\
e.ErrorMessage(),\
(LPCSTR) e.Source(),\
(LPCSTR) e.Description());\
::MessageBox(NULL,strComError,"错误",MB_ICONEXCLAMATION);\
}
#endif
/*********************************************************************/
CADO::CADO()
{
::CoInitialize(NULL);
try
{
m_pConn.CreateInstance("ADODB.Connection");
m_pConn->ConnectionTimeout=5;
m_pConn->Open("DSN=eee","","",0);
}
catch(_com_error e)
{
CATCH_ERROR;
}
}
CADO::~CADO()
{
if (m_pRS != NULL)
m_pRS->Close();
m_pConn->Close();
::CoUninitialize();
}
_RecordsetPtr& CADO::GetRS(CString strSQL)
{
try
{
m_pRS.CreateInstance(__uuidof(Recordset));
m_pRS->Open((_bstr_t)strSQL,m_pConn.GetInterfacePtr(),
adOpenDynamic,adLockOptimistic,adCmdText); // 取得表中的记录
}
catch(_com_error e)
{
CATCH_ERROR
}
return m_pRS;
}
BOOL CADO::Execute(CString strSQL)
{
try
{
m_pConn->Execute((_bstr_t)strSQL,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
CATCH_ERROR
return false;
}
}
|