vc链接数据库和操作数据库的函数清单

本文介绍了一个VC++中使用的ADOConn类,用于连接和操作Access及SQL Server等数据库。该类包含初始化连接、获取记录集、执行SQL语句及关闭连接等功能。
                                      vc链接数据库和操作数据库的函数清单
 
         这是我写的一个类,类名是ADOConn.cpp和ADOConn.h,主要作用就是把vc链接数据库和操作数据库的函数清单写在了这里面。把这个类加进vc中是可以直接运行的,你直接调用就行了。改一些路径,他可以对access,SqlServer等数据库进行很好的操作。
         第一个是ADOConn.cpp
InBlock.gif// ADOConn.cpp: implementation of the ADOConn class.
///////////////////////////////
InBlock.gif
InBlock.gif#include "stdafx.h"
InBlock.gif#include "myshoujiDlg.h"     //主函数
InBlock.gif#include "ADOConn.h"
InBlock.gif
InBlock.gif#ifdef _DEBUG
InBlock.gif#undef THIS_FILE
InBlock.gifstatic char THIS_FILE[]=__FILE__;
InBlock.gif#define new DEBUG_NEW
InBlock.gif#endif
///////////////////////////////
InBlock.gif// Construction/Destruction
////////////////////////////////
InBlock.gif
InBlock.gifADOConn::ADOConn()
InBlock.gif{
InBlock.gif
InBlock.gif}
InBlock.gif
InBlock.gifADOConn::~ADOConn()
InBlock.gif{
InBlock.gif
InBlock.gif}
InBlock.gif
InBlock.gifvoid ADOConn::OnInitADOConn()                                      //以调用access为例,其实调用SqlServer等也是一样的
InBlock.gif{
InBlock.gif  ::CoInitialize(NULL);     //初始化COM组件
InBlock.gif  try
InBlock.gif  {
InBlock.gif             m_pConnection.CreateInstance("ADODB.Connection");
InBlock.gif        _bstr_t strConnect="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=shouji.mdb";             //链接数据库,这里是shouji数据库,可以根据具体情况改
InBlock.gif        m_pConnection->Open(strConnect,"","",adModeUnknown);
InBlock.gif  }
InBlock.gif  catch(_com_error e)
InBlock.gif  {
InBlock.gif    AfxMessageBox(e.Description());
InBlock.gif  }
InBlock.gif}
InBlock.gif
InBlock.gif_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)
InBlock.gif{
InBlock.gif        try
InBlock.gif  {
InBlock.gif    if(m_pConnection==NULL)
InBlock.gif                            OnInitADOConn();
InBlock.gif    m_pRecordset.CreateInstance(__uuidof(Recordset));
InBlock.gif                m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
InBlock.gif  }
InBlock.gif        catch(_com_error e)                        //捕捉异常
InBlock.gif  {
InBlock.gif    e.Description();
InBlock.gif  }
InBlock.gif  return m_pRecordset;
InBlock.gif}
InBlock.gif
InBlock.gifBOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)        //再打开数据库后,执行Sql语句
InBlock.gif{
InBlock.gif  _variant_t RecordsAffected;
InBlock.gif  try
InBlock.gif  {
InBlock.gif                if(m_pConnection==NULL)
InBlock.gif              OnInitADOConn();
InBlock.gif                m_pConnection->Execute(bstrSQL,NULL,adCmdText);
InBlock.gif    return true;
InBlock.gif  }
InBlock.gif  catch(_com_error e)
InBlock.gif  {
InBlock.gif    e.Description();
InBlock.gif    return false;
InBlock.gif  }
InBlock.gif}
InBlock.gif
InBlock.gifvoid ADOConn::ExitConnect()                    //退出链接
InBlock.gif{
InBlock.gif        if(m_pRecordset!=NULL)
InBlock.gif    m_pRecordset->Close();
InBlock.gif  m_pConnection->Close();
InBlock.gif  ::CoUninitialize();
InBlock.gif}
第二个是ADOConn.h
InBlock.gif// ADOConn.h: interface for the ADOConn class.
////////////////////////////////
InBlock.gif
InBlock.gif#if !defined(AFX_ADOCONN_H__A2B6E8CE_2220_4830_95F8_2911D1EAC453__INCLUDED_)
InBlock.gif#define AFX_ADOCONN_H__A2B6E8CE_2220_4830_95F8_2911D1EAC453__INCLUDED_
InBlock.gif#import "C:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
InBlock.gif
InBlock.gif#if _MSC_VER > 1000
InBlock.gif#pragma once
InBlock.gif#endif // _MSC_VER > 1000
InBlock.gif
InBlock.gifclass ADOConn    
InBlock.gif{
InBlock.gifpublic:
InBlock.gif        _ConnectionPtr m_pConnection;
InBlock.gif  _RecordsetPtr m_pRecordset;
InBlock.gifpublic:
InBlock.gif  ADOConn();
InBlock.gif  virtual ~ADOConn();
InBlock.gif
InBlock.gif  void OnInitADOConn();
InBlock.gif        _RecordsetPtr&GetRecordSet(_bstr_t bstrSQL);
InBlock.gif        BOOL ExecuteSQL(_bstr_t bstrSQL);
InBlock.gif  void ExitConnect();
InBlock.gif
InBlock.gif};
InBlock.gif
InBlock.gif#endif // !defined(AFX_ADOCONN_H__A2B6E8CE_2220_4830_95F8_2911D1EAC453__INCLUDED_)
         希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值