VC++使用ADO连接SQL Server数据库

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

 

VC++使用ADO连接SQL Server数据库

 

 

基本步骤:

1.创建一个基于对话框的应用程序ADODatabase

2.创建一个用来连接的ADO类库。系统菜单中Insert->New Class项,class type选择Generic Class; Name后输入类名“ADOConn”,点OK。这样,在工程上自动生成ADOConn.hADOConn.cpp两个文件。

3.ADOConn.h中导入一个ADO动态链接库msado15.dll,添加代码:#import "c:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF"),同时在ADOConn.h中定义 public//添加一个指向Connection对象的指针: _ConnectionPtr m_pConnection; //添加一个指向Recordset对象的指针: _RecordsetPtr m_pRecordset

4.m_pConnection->Open(_bstr_t ConnectionString, _bstr_t UserID, _bstr_t Password, long Options) 操作。ConnectionStringVC++中对SQL SERVERADO设置。如,Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=suntest;Data Source=WWW-ED1F301E78B ;User Id=sa;Password=;

其中Data Source为服务器名称,可以用Server代替,本机表示为.或者(local)Initial Catalog为你要使用的数据库名称 可以用Database代替;Integrated Security=SSPI表示用集成模式,此时uid pwd 设置不起作用;只有当Integrated Security=FALSE表示用混合模式,uid pwd 设置才起作用

参数Options表示CommandText的类型:adCmdText-文本命令;adCmdTable-表名 adCmdProc-存储过程;adCmdUnknown-未知

5.添加两个成员函数:(1)执行查询函数 _RecordsetPtr& GetRecordSet(_bstr_t bstrSQL);(2)执行SQL语句 BOOL ExecuteSQL(_bstr_t bstrSQL)

给出两个文件的完整代码:

/*------------------ADOConn.h File-------------------------------------------------*/

// ADOConn.h: interface for the ADOConn class.

#import "c:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")

#if !defined(AFX_ADOCONN_H__AC448F02_AF26_45E4_9B2D_D7ECB8FFCFB9__INCLUDED_)

#define AFX_ADOCONN_H__AC448F02_AF26_45E4_9B2D_D7ECB8FFCFB9__INCLUDED_

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000

class 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__AC448F02_AF26_45E4_9B2D_D7ECB8FFCFB9__INCLUDED_)

/*--------------------------------------------------------------------------------*/

/*---------------------ADOConn.cpp File---------------------------*/

#include "stdafx.h"

#include "ADOConn.h"

#ifdef _DEBUG

#undef THIS_FILE

static char THIS_FILE[]=__FILE__;

#define new DEBUG_NEW

#endif

ADOConn::ADOConn()

{

}

ADOConn::~ADOConn()

{

}

// 初始化连接数据库

void ADOConn::OnInitADOConn()

{

// 初始化OLE/COM库环境

::CoInitialize(NULL);

try

{

// 创建Connection对象

m_pConnection.CreateInstance("ADODB.Connection");

// 设置连接字符串,必须是BSTR型或者_bstr_t类型

_bstr_t strConnect = "Provider=SQLOLEDB; Server=CZ;Database=HrSys; uid=sa; pwd=sa;";

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

}

// 捕捉异常

catch(_com_error e)

{

// 显示错误信息

AfxMessageBox(e.Description());

}

}

// 执行查询

_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)

{

try

{

// 连接数据库,如果Connection对象为空,则重新连接数据库

if(m_pConnection==NULL)

   OnInitADOConn();

// 创建记录集对象

m_pRecordset.CreateInstance(__uuidof(Recordset));

// 取得表中的记录

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数据库编程技术详解 ADO(ActiveX Data Objects)是一种基于COM的数据库访问技术,由微软推出,旨在为开发者提供统一、高效的数据访问接口。随着Windows平台的发展,ADO逐步成为VC++开发中数据库操作的核心技术之一,尤其在企业级应用和数据库密集型系统中占据重要地位。ADO通过一组对象模型(如Connection、Command、Recordset等)抽象了数据库访问流程,使得开发者可以使用一致的编程方式连接多种数据源,执行SQL语句并处理结果集。 阅读详情

相关推荐

Visual C++ 中使用ADO连接SQL Server数据库的实践指南

在当今快节奏的技术领域中,数据库的集成和数据的即时访问已成为应用程序不可或缺的特性。VC++作为一款功能强大的编程语言,与ADO(ActiveX Data Objects)技术的结合,为开发人员提供了一种高效的方式来连接并操作SQL Server数据库。这种技术组合特别适合需要精细控制数据库操作的高级场景,如复杂的事务处理和数据集同步等。

weixin_42462474的博客 889

VS2013基于MFC连接sql server数据库以及增删改查

该文件是在VS2013下基于MFC连接数据库并完美实现增删改查,下载后只需要修改链接字就可以运行。谢谢采纳!

C++ + ADO + Sql2012 简单例子(适合菜鸟)

关于vc6.0/VS中实现ADO SQL数据库连接的文章网上虽然很多,但大多写的很繁琐,对于我们这样的菜鸟来说,还是很希望有一篇简单化的文章的。希望跟我一样的菜鸟们学得开心!

visual studio2019连接SQL Server数据库,增删改查详细教程(C#代码)

visual studio2019连接SQL Server数据库,增删改查详细教程(C#代码) 工具: 1.Visual Studio 2019 2.SQL Server数据库(我使用的2008) 操作: 1.打开SQL Server,打开后会看到数据库的初始链接界面。 2…复制图中的“服务器名称”,然后点击“连接”,进入数据库。 3.打开vs,创建好自己要用的项目,我写的项目名称叫做:‘finnal_test’ 4.工具->连接数据库->在服务器名里面,粘贴复制的服务器名 5.在下面选择自己

weixin_43618436的博客 3万+

VC++(MFC)实现SQL Server的远程连接ADO实现)

一、ADO概述        ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口。ADO 使您能够编写应用程序以通过 OLE.DB 提供者访问和操作数据库服务器中的数据。ADO 最主要的优点是易于使用、速度快、内存支出少和磁盘遗迹小。ADO 在关键的应用方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了

duanhehui0928的专栏 1445

VS2019 C++ SQL Server 数据库连接

开放数据库连接(ODBC)是微软提出的数据库访问接口标准。用微软管阀的话来说就是:ODBC 是数据库 API 的规范。任何人都可以编写 ODBC 应用程序和驱动程序。使用 ODBC 的应用程序负责任何跨数据库功能。例如,ODBC 不是异类联接引擎,也不是分布式事务处理器。但是,由于它是与 DBMS 无关的,因此可用于生成此类跨数据库工具。

Dsxrrwe的博客 3812

Microsoft Visual Studio 中应用程序访问SQL Server 数据库(C#语言编写)

C#.NET中,使用ADO.NET获取数据,使用ADO.NET组件开发数据库应用程序。ADO.NET类库中提供了用于数据连接、数据处理的类。System.Data名称空间可以通过数据提供者(provider)与数据库通信,ADO.NET对象允许通过组件连接数据库,在数据库中进行检索、编辑、删除和插入数据,并在程序中处理数据。 ADO.NET有两个重要的组成部分——DataSet 对象和 .NE

学习笔记 6521

VC++ 基于Win32控制台应用程序的ADO连接SQL server数据库

ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,即使你对OLE DB、COM不了解也能轻松对付ADO。   ADO使用步骤方法: 1.       初始化COM库,引入ADO库定义文件 2.       用Connection对象连接数据库 3.       利用建立好的连接,通过Connecti

加油! 3235

vc++ 6.0连接sqlserver的两种方式

1、ODBC ODBC(open DataBase Connectivity) 是为数据库应用程序访问关系型数据库时提供的一个统一接口,对于不同的数据库,ODBC提供了一套统一的API,使应用程序可以访问任何一种提供了odbc驱动程序的数据库。而且odbc已经成为一种标准,目前所有的关系型数据库都提供了odbc驱动程序,但odbc只能用于关系型数据库,很难访问对象数据库及其他非关系型数据库。 ...

weixin_30847271的博客 1114

VC++使用ADO连接SQL Server数据库 .

基本步骤: 1.创建一个基于对话框的应用程序ADODatabase。 2.创建一个用来连接ADO类库。系统菜单中Insert->New Class项,class type选择Generic Class; 在Name后输入类名“ADOConn”,点OK。这样,在工程上自动生成ADOConn.h和ADOConn.cpp两个文件。 3.在ADOConn.h中导入一个ADO动态链接库msado15

shirley的专栏 835

VC 利用ADO连接Sqlserver2005数据库示例

简单介绍VC使用ADO连接Sqlserver2005数据库的方法。参考VC++深入详解.pdf里面的示例(教程上的数据库sqlserver2005不适用)。

C++利用ADO连接数据库 (菜鸟必学)

关于vc6.0/VS中实现ADO SQL数据库连接的文章网上虽然很多,但大多写的很繁琐,对于我们这样的菜鸟来说,还是很希望有一篇简单化的文章的。希望跟我一样的菜鸟们学得开心!

MFC或VC++中利用ADO连接数据库的步骤

1 事先初始化COM库 ::CoInitialize(NULL);   2:定义_ConnectionPtr 对象指针,通过m_pConnection.CreateInstance("ADODB.Connection");创建实例并通过Open()方法连接数据库     3  通过ConnectionPtr 对象的Execute方法执行sql语句(也可通过_CommandPtr对象)

zhangyulin54321的专栏 1万+

VC++ADO连接SQL Server步骤

 1:SQL  Server数据库配置     开启服务器   托盘显示服务器启动   2:在StaAfx.h 中添加如下代码 #import "C://Program Files//Common Files//System//ado//msado15.dll" no_namespace      rename("

LEEBIAO的专栏 1872

MFC中用Ado连接数据库

 VC++使用MFC通过ADO连接数据库方法小结(不包括异常的捕捉)这里主要讲MFC与SQL2000数据库连接。1.在StdAfx.h头文件中加入此句子#import "c:/program files/common files/system/ado/msado15.dll"/ no_namespace rename("EOF","adoEOF")2.在App类的InitInstanc

guomei的专栏 3287
上一篇: VC++使用ADO连接SQL Server数据库
下一篇: CListCtrl的用法
qrsssh
博客等级 码龄19年 18粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值