vc链接数据库和操作数据库的函数清单
这是我写的一个类,类名是ADOConn.cpp和ADOConn.h,主要作用就是把vc链接数据库和操作数据库的函数清单写在了这里面。把这个类加进vc中是可以直接运行的,你直接调用就行了。改一些路径,他可以对access,SqlServer等数据库进行很好的操作。
第一个是ADOConn.cpp
// ADOConn.cpp: implementation of the ADOConn class.
///////////////////////////////

#include
"stdafx.h"

#include
"myshoujiDlg.h"
//主函数

#include
"ADOConn.h"

#ifdef _DEBUG

#undef THIS_FILE
static
char THIS_FILE[]=__FILE__;

#define
new DEBUG_NEW

#endif
///////////////////////////////
// Construction/Destruction
////////////////////////////////

ADOConn::ADOConn()

{

}

ADOConn::~ADOConn()

{

}
void ADOConn::OnInitADOConn()
//以调用access为例,其实调用SqlServer等也是一样的

{

::CoInitialize(NULL);
//初始化COM组件
try

{

m_pConnection.CreateInstance(
"ADODB.Connection");

_bstr_t strConnect=
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=shouji.mdb";
//链接数据库,这里是shouji数据库,可以根据具体情况改

m_pConnection->Open(strConnect,
"","",adModeUnknown);

}
catch(_com_error e)

{

AfxMessageBox(e.Description());

}

}

_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)

{
try

{
if(m_pConnection==NULL)

OnInitADOConn();

m_pRecordset.CreateInstance(__uuidof(Recordset));

m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

}
catch(_com_error e)
//捕捉异常

{

e.Description();

}
return m_pRecordset;

}

BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)
//再打开数据库后,执行Sql语句

{

_variant_t RecordsAffected;
try

{
if(m_pConnection==NULL)

OnInitADOConn();

m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return
true;

}
catch(_com_error e)

{

e.Description();
return
false;

}

}
void ADOConn::ExitConnect()
//退出链接

{
if(m_pRecordset!=NULL)

m_pRecordset->Close();

m_pConnection->Close();

::CoUninitialize();

}
第二个是ADOConn.h
// ADOConn.h: interface for the ADOConn class.
////////////////////////////////

#
if !defined(AFX_ADOCONN_H__A2B6E8CE_2220_4830_95F8_2911D1EAC453__INCLUDED_)

#define AFX_ADOCONN_H__A2B6E8CE_2220_4830_95F8_2911D1EAC453__INCLUDED_

#import
"C:\program files\common files\system\ado\msado15.dll" no_namespace rename(
"EOF",
"adoEOF")

#
if _MSC_VER > 1000

#pragma once

#endif
// _MSC_VER > 1000
class ADOConn

{
public:

_ConnectionPtr m_pConnection;

_RecordsetPtr m_pRecordset;
public:

ADOConn();
virtual ~ADOConn();
void OnInitADOConn();

_RecordsetPtr&GetRecordSet(_bstr_t bstrSQL);

BOOL ExecuteSQL(_bstr_t bstrSQL);
void ExitConnect();

};

#endif
// !defined(AFX_ADOCONN_H__A2B6E8CE_2220_4830_95F8_2911D1EAC453__INCLUDED_)
希望对你有所帮助。
本文转自阿龙哥 51CTO博客,原文链接:http://blog.51cto.com/ililong/284962
,如需转载请自行联系原作者