VC+ADO+MS-SQL的数据库操作类
来源:互联网 发布:java面试简历项目经验 编辑:程序博客网 时间:2024/05/09 14:24
以前写的一个数据库操作类.其中有参考网上很多朋友的代码.非常谢谢!
一.在stdafx.h头文件中加入
#import "c:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")
注意在下面二句之间加入.否则会出错.
#endif // _AFX_NO_AFXCMN_SUPPORT
//在这下面加入上面这句.
//{{AFX_INSERT_LOCATION}}
二.新建一个ADOConn的类.在ADOConn.cpp中最上面加入#include "stdafx.h".
三.其中ADOConn.h中的代码如下:
- // ADOConn.h: interface for the ADOConn class.
- //
- //////////////////////////////////////////////////////////////////////
- #if !defined(AFX_ADOCONN_H__FF7DB821_D61D_437A_9FA8_193D48F1C1F5__INCLUDED_)
- #define AFX_ADOCONN_H__FF7DB821_D61D_437A_9FA8_193D48F1C1F5__INCLUDED_
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- class ADOConn
- {
- //public:
- // ADOConn();
- // virtual ~ADOConn();
- // 定义变量
- public:
- //添加一个指向Connection对象的指针:
- _ConnectionPtr m_pConnection;
- //添加一个指向Recordset对象的指针:
- _RecordsetPtr m_pRecordset;
- // 定义方法
- public:
- ADOConn();
- virtual ~ADOConn();
- // 初始化—连接数据库
- void OnInitADOConn();
- // 执行查询
- _RecordsetPtr& GetRecordSet(_bstr_t bstrSQL);
- // 执行SQL语句,Insert Update _variant_t
- BOOL ExecuteSQL(_bstr_t bstrSQL);
- void ExitConnect();
- };
- #endif // !defined(AFX_ADOCONN_H__FF7DB821_D61D_437A_9FA8_193D48F1C1F5__INCLUDED_)
四.其中ADOConn.cpp中的代码如下:
- // ADOConn.cpp: implementation of the ADOConn class.
- //
- //////////////////////////////////////////////////////////////////////
- #include "stdafx.h"
- #include "First.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()
- {
- // 初始化OLE/COM库环境
- ::CoInitialize(NULL);
- HRESULT hr=m_pConnection.CreateInstance(__uuidof(Connection));
- if(SUCCEEDED(hr))
- try
- {
- }
- catch(_com_error e)//捕获错误
- {
- e.Description();
- e.ErrorMessage();
- e.Source();
- }
- //打开数据库:
- CString strConn;
- //MyConn.udl为数据库连接文件,以下是其位置.
- m_pConnection->ConnectionString ="File Name=d://vc//MyConn.udl";
- try
- {
- m_pConnection->Open(L"",L"",L"",-1);
- }
- catch(_com_error e)///捕捉异常
- {
- CString errormessage;
- errormessage.Format("打开数据库失败!/r/n错误信息:%s", e.ErrorMessage());
- AfxMessageBox(errormessage);///显示错误信息
- //return FALSE;
- }
- //AfxMessageBox("打开数据库正常");
- }
- // 执行查询
- _RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)
- {
- try
- {
- // 连接数据库,如果Connection对象为空,则重新连接数据库
- if(m_pConnection==NULL)
- OnInitADOConn();
- // 创建记录集对象
- m_pRecordset.CreateInstance(__uuidof(Recordset));
//不加这句会出现The rowset is not bookmarkable运行错误
- // 取得表中的记录
- m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
- }
- // 捕捉异常
- catch(_com_error e)
- {
- // 显示错误信息
- AfxMessageBox(e.Description());
- }
- // 返回记录集
- return m_pRecordset;
- }
- // 执行SQL语句,Insert Update _variant_t
- BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)
- {
- // _variant_t RecordsAffected;
- try
- {
- // 是否已经连接数据库
- if(m_pConnection == NULL)
- OnInitADOConn();
- // Connection对象的Execute方法:(_bstr_t CommandText,
- // VARIANT * RecordsAffected, long Options )
- // 其中CommandText是命令字串,通常是SQL命令。
- // 参数RecordsAffected是操作完成后所影响的行数,
- // 参数Options表示CommandText的类型:
- //adCmdText-文本命令;adCmdTable-表名
- // adCmdProc-存储过程;adCmdUnknown-未知
- m_pConnection->Execute(bstrSQL,NULL,adCmdText);
- return true;
- }
- catch(_com_error e)
- {
- AfxMessageBox(e.Description());
- return false;
- }
- }
- void ADOConn::ExitConnect()
- {
- // 关闭记录集和连接
- if (m_pRecordset != NULL)
- m_pRecordset->Close();
- m_pConnection->Close();
- // 释放环境
- ::CoUninitialize();
- }
- VC+ADO+MS-SQL的数据库操作类
- VC ADO 数据库操作 SQL语句执行
- VC++中采用ADO操作SQL数据库
- VC++中采用ADO操作SQL数据库
- VC++使用ADO操作SQL Server数据库
- VC++ ADO操作数据库
- 基于ADO的VC++数据库操作类实现
- VC下ADO数据库操作的封装类
- VC下ADO数据库操作的封装类
- VC++下ADO数据库操作的封装类
- VC下的数据库操作之--ADO
- VC数据库ADO操作的说明
- MFC VC ADO链接SQL Server数据库 操作数据库数据
- C#操作MS SQL Server 数据库的通用类
- vc++学生选课系统开发 sql操作数据库 ado封装
- VC ADO连接SQL数据库
- VC+ADO操作数据库注意事项
- VC++ ADO连接数据库操作
- String.Format格式说明
- (转贴)浅析GSM上层协议及其在测试中的应用
- vs2008版本
- 8051 Tutorial: Types of Memory
- JavaScript框架编程!
- VC+ADO+MS-SQL的数据库操作类
- GridView列数字、货币和日期的显示格式
- VS2005中ajax安装指南
- 返回指针时注意事项
- C#实现顺序栈
- .NET常用工具类(Utils.cs)
- JavaScript入门学习书籍的阶段选择!
- 最简单的动态申请内存的操作
- 用.NET开发MSN聊天机器人