VC编程中利用ADO方式访问SQL Server 2012数据库(1)- 连接数据库

c++通过ADO方式操作SQLSERVER数据库 c++中通过ADO方式,可以很方便的操作SQLSERVER数据库。 阅读详情

1、ADO对象及其智能指针

ADO是进行SQL Server数据访问的最常用的方式。ADO中与数据库相关的对象主要有三个:连接对象 Connection、记录集对象 Recordset 和命令对象 Command,它们对应的智能指针分别是_ConnectionPtr、_RecordsetPtr、_CommandPtr。其中 Connection 对象是其余两个对象的基础,也就是说在使用 Recordset 和 Command 对象之前,必须先使用 Connection 对象对数据库进行连接,成功建立了连接之后才能对数据库进行后续的增删查改操作。

2、使用 Connection 对象的 Open() 方法连接 SQL Server

要使用 ADO 对象,需要先在 stdafx.h 中通过下面的代码导入msado15.dll 库,该库包含了所有 ADO 对象的描述和声明。

 #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF") 

Open() 方法的原型:

Open(_bstr_t ConnectionString,_bstr_t UserID,_bstr_t Password,long Options)

ConnectionString 为连接字串,UserID 是用户名,Password是登陆密码,Options是连接选项,可以是如下几个常量:
<1> adModeUnknown 缺省,当前的许可权未设置
<2> adModeRead 只读
<3> adModeWrite 只写
<4> adModeReadWrite 可以读写
<5> adModeShareDenyRead 阻止其它Connection对象以读权限打开连接
<6> adModeShareDenyWrite 阻止其它Connection对象以写权限打开连接
<7> adModeShareExclusive 阻止其它Connection对象打开连接
<8> adModeShareDenyNone 阻止其它程序或对象以任何权限建立连接

Open() 方法的使用实例:

_ConnectionPtr m_pConn(__uuidof(Connection));
m_pConn.CreateInstance("ADODB.Connection"));    // 创建 Connection 对象实例
try
{
	_bstr_t strConnect = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TestDataBase;Data Source=.";
	HRESULT hResult = m_pConn->Open(strConnect, "", "", adModeUnknown);
}
catch (_com_error e)
{
	AfxMessageBox(_T("Fail to connect SQL Server!"));
}
其中最容易出错的是 ConnectionString 字符串参数的使用,那么该如何确定该参数呢?有两种方法:

(1)根据具体的数据库连接参数一个一个地确定字符串中对应的部分,这种方法需要配置起来比较麻烦,容易出错,而且不便于立即测试是否可以连接;

(2)通过 udl 文件进行配置生成字符串参数,这种方法配置简单,而且可以立即测试是否可以连接,其具体步骤为:

① 新建一个 txt 文本文件,把后缀改为 udl ,右键 -> 属性 -> 提供程序 -> Microsoft OLE DB Provider for SQL Server -> 下一步,在“选择或输入服务器名称”中填入数据库所在的服务器名称 或者 IP地址,如果数据库在本地机,则直接输入点号(.)或127.0.0.1(注:当使用Windows 身份验证方式无法连接),在“输入登录服务器的信息”一栏,若使用“Windows 身份验证”方式登录数据库,则选择“使用 Windows NT 集成安全设置”,若使用 “SQL Server 身份验证” 方式登录数据库,则选择“使用指定的”用户名称和密码,并填入 用户名 和 密码 (如果这种方式不可用,可以参考这里更改服务器身份验证模式),然后在“在服务器上选择数据库”下拉菜单中选择要连接的数据库,点击 测试连接,如果弹出 测试连接成功,就说明数据库能够连接上,点击 应用/确定 保存连接参数;   

            

② 用文本编辑器打开 udl 文件,最后一行字符串(Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TestDataBase;Data Source=.)就是 ConnectionString 参数的值,复制到代码里就OK了。


参考资料:

[1] https://www.connectionstrings.com/sql-server-2012/

[2] http://blog.youkuaiyun.com/renyhui/article/details/27082529


FOC项目知识点总结三 | 完全搞懂 Clarke 与 Park 变换(附动图,仿真文件以及详细讲解数学推导过程) 本文目的,最终可以完整推算两种变换 Clarke 变换 首先先看我们需要用到的两种坐标系 1. 自然坐标系 abcabcabc 我们知道,通过三相逆变电路,我们可以画出一个自然坐标系 abcabcabc ,即三相电压的坐标系,通入的电流在这三轴坐标系中变化: 将三个矢量相加合并在一起就如下图所展现: 使用三个坐标轴来表示十分的麻烦与不直观,因为其是非正交的,于是乎我们想要将其转化成使用两个正交的坐标轴来表示,于是乎便有了 Clarke变换。 Clarke 变换的作用: 将基于三轴二维的定子静止坐标系的各 阅读详情

相关推荐

傻白入门芯片设计,指令集架构、微架构、处理器内核(十一)

通俗理解指令集架构、微架构和处理器内核的关系

qq_46675545的博客 6011

vs2013 ADO连接SQL server2012数据库

1、首先在stdafx.h头文件中首先导入 #import "msado15.dll" no_namespace rename ("EOF", "adoEOF")

逗逗飞的专栏 9613

一篇教你杰理63系列蓝牙双设备主从连接传输数据过程及配置

首先打开632sdk的app_config.h文件,将宏CONFIG_APP_SPP_LE写0,将宏CONFIG_APP_MULTI写1,对应的CONFIG_BT_GATT_CLIENT_NUM写1代表我只连接一个主机设备。属性都可以修改为自己想要的属性,然后关掉文件,双击gatt_inc_generator.exe文件运行,就会自动弹出生成/更新后的gatt_profile_cfg.h文件,然后里面就是我们代码里面所需要的配置,都是十六进制表示,找到我们刚刚添加的服务属性配置,复制到代码里面去。

xiaolizaixian的博客 1375

html连接sqlserver数据库,js读取sqlserver数据库,输出至html

创建数据库对象var objdbConn = new ActiveXObject("ADODB.Connection");//DSN字符串var strdsn = "Driver={SQL Server};SERVER=127.0.0.1;UID=sa;PWD=tzk19991029;DATABASE=qiyetupu";//打开数据源objdbConn.Open(strdsn);//执行SQL的...

weixin_39954908的博客 2891

中兴FTTR光猫变简易OLT:低成本搭建全光监控与局域网实战指南

本文详细介绍了如何将中兴FTTR光猫改造为简易OLT设备,实现低成本全光监控与局域网扩展。通过LOID认证、桥接模式设置及终端数破解,用户可利用二手设备搭建高性能光纤网络,适用于远程监控和长距离组网场景,显著降低部署成本。

chair的专栏 2035

匈牙利算法解决指派问题清晰流程

匈牙利算法解决指派问题清晰流程 百度词条上,指派问题(Assignment problem)是这么定义的:在满足特定指派要求条件下,使指派方案总体效果最佳。如:有若干项工作需要分配给若干人(或部门)来完成;有若干项合同需要选择若干个投标者来承包:有若干班级需要安排在若干教室里上课等。   一、做减法(归约): 行归约:每行元素减去该行最小元素。 列归约:每行元素减去该行最小元素。

siss0siss的博客 6万+

使用javascript调用Ado对象操作数据库

前言无论是b/s还是c/s的开发中,基本上不使用javascript来对数据库进行操作。而我了印证我的一个想法,需要往数据库增加大量的新闻类信息,因此,我想从各个rss站点上获取信息并将信息导入到数据库里去。其实我也可以选择使用java,c++,或者是c#等编译语言,不过,使用javascript语言对这项工作来说是效率最高的。那我又何乐而不为呢?环境操作系统:winxp sp2使用工具:cs

剑晖(广州)的专栏 4507

从CTFShow靶场实战,聊聊Node.js原型链污染漏洞的几种利用姿势(附详细复现步骤)

本文深入剖析Node.js原型链污染漏洞的原理与实战利用,通过复现CTFShow靶场题目(web338-web341),详细演示五种高级利用技巧,包括基础污染、多级污染、模板引擎RCE等,并提供防御方案与最佳实践,帮助开发者提升Web应用安全性。

weixin_30791095的博客 446

VC++使用ADO操作SQL Server数据库

 VC++使用ADO连接SQL Server数据库:http://hi.baidu.com/zhaquanmin/blog/item/255584458b7dd345510ffe92.html 对于前面一篇VC++使用ADO连接SQL Server数据库,我们还需要做显示,添加,修改和删除等功能,实现对数据库执行一定操作。本文使用的数据库为前面数据库suntest中的表“仓库3”,用ADO

myiszjf的专栏 970

【Qt图书管理系统】5.完整版源码及下载地址

Qt图书管理系统完整源码下载。

小鱼酱的博客 7001

C#上位机之海康相机开发(SDK)实战教程

SDK的接口设计遵循“句柄-操作-释放”模式,掌握→→→的流程,就能完成基础开发;工业场景需重点关注稳定性:断连重连、内存管理、抗干扰(网口相机的IP设置、触发信号的可靠性);进阶功能(如图像处理、多相机同步)需结合视觉库(EmguCV)和硬件特性(GPIO触发),但前提是保证基础采集的稳定。建议新手先跑通SDK自带的C#示例,理解每个函数的作用,再逐步替换为自己的代码。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 2193

c++利用ado访问sqlserver数据库

学自 ADOConn.h #pragma once #import "c:\Program Files\Common Files\System\ado\msado15.dll"no_namespace \ rename("EOF", "adoEOF")rename("BOF", "adoBOF") class ADOConn { private: _ConnectionPtr m_pC

legan的专栏 6401

EndNote导入文献出现带有大括号{}乱码的解决办法

进入word中的Endnote工具栏——Bibliography Preferences(位于Bibliography区块的右下角),就是那个输入杂志名的小三角形,在Temporary citation delimiters处修改变量的默认符号。将默认的大括号{}修改为文章中不回使用到的符号。原因:因为Endnote插入的参考文献在Word中的代码就是以大括号隔开的,当文章中出现了该符号,endnote就会自动比对Library中的书目,而此时endnote出现错误。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 4万+

VC编程中利用ADO方式访问SQL Server 2012数据库- 连接数据库 转载

VC编程中利用ADO方式访问SQL Server 2012数据库(1)- 连接数据库 转载  Sacomplex 786次阅读 2017-06-10 关注 1、ADO对象及其智能指针 ADO是进行SQL Server数据访问的最常用的方式。ADO中与数据库相关的对象主要有三个:连接对象 Connection、记录集对象 Recordset 和命令对象 Command,它们对应的智能指针分别是_C...

WZD023的博客 425

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

VC编程中利用ADO方式访问SQL Server 2012数据库(2) - 读写数据库

数据库是存储数据的系统,对数据库的操作主要是对数据的操作,操作数据无非就是增、删、查、改,这里总结一下如何使用ADO对象对SQL Server数据库进行 增删查改 操作。在操作数据前必须要连接上数据库,关于SQL Server数据库的连接请参考前一篇文章 VC编程中利用ADO方式访问SQL Server 2012数据库(1) - 连接数据库 。 其实,ADO操作数据库主要是通过 Connecti

Sacomplex 's blog 1247

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

毕设中用到的MFC、ADO相关知识的网络参考资源整理(VS2010/SQL Server 2012/ADO)

一、模态对话框和非模态对话框

tabibi的专栏 576

odbc连接远程服务器,使用odbc连接数据库

使用JDBC和 JDBC-ODBC驱动连接数据库数据库所以在使用JDBC-ODBC访问的时候一定要在java服务器上安装ODBC驱动 要使用JDBC-ODBC驱动一定要先加载驱动类利用Class类的forName静态方法加载 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");加载 JDBC-...文章usher.yue2011-11-201010浏览...

weixin_42514877的博客 2395

mfc编程获取mysql数据类型_mfc数据库返回的数据类型

VC++数据库开发技术的比较从功能简单的数据库(如Jet Engine)到复杂的大型数据库系统(如oracle),VC++6.0都提供了一些编程接口。本文主要介绍以下五种:   1.ODBC API;   2.MFC ODBC类;   3.MFC DAO类;(数据访问对象)   4.MFC的OLE/DB;   5.Activ...文章能断金刚般若波罗蜜多经2010-12-311283浏览量静态.共...

weixin_39775029的博客 430

store 存取数据数组对象_mfc存储对象的数组

MFC模板CArray及其派生类CArray及其派生类1.简介:访问方法及效率和普通的数组一样,比普通数组强大的功能是可以改变数组的大小。Array采用队列方式存储数据,因而其内部数据元素是以物理方式顺序排列的,所以检索、顺序执行GetAt()等函数的速度是相当快的。但是由于每次队列长度变化后,数据都要重新申请内存、拷贝内存...文章double2li2014-01-02825浏览量VC++数据...

weixin_39844284的博客 506

VC++ 使用ADO连接SQL Server的程序例子

VC++ 使用ADO连接SQL Server的程序例子// myDataTemp.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "iostream" #include "string" #include "vector" //步骤1:添加对ADO的支持 #import "C:\Program Files\Common F...

知行合一 3141

用ADO连接SQL Server数据库

这篇文章不是介绍ADO连接数据库的原理的,而是写一下连接的步骤和简便方法。 一、获取连接字符串。 连接数据库时需要用到  _ConnectionPtr  对象的open方法,参数如下: HRESULT Connection15::Open(_bstr_t  ConnectionString,  _bstr_t   UserID,  _bstr_t   Password,  _bstr_t

Naruto 2万+

在js中动态查询SqlServer数据库(只支持IE浏览器)

ad af sad  var objdbConn = new ActiveXObject("ADODB.Connection"); var strdsn =objdbConn.open("Provider=SQLOLEDB;Data Source=.;User ID=sa;Password=123456;Initial Catalog=lianxi"); // 需要修改自己的服务器地址

qq_34787830的博客 1868

vc 连接sqlserver数据库

1. 生成应用程序框架并初始化OLE/COM库环境   创建一个标准的MFC AppWizard(exe)应用程序,然后在使用ADO数据库的InitInstance函数中初始化OLE/COM库(因为ADO库是一个COM DLL库)。 本例为:  BOOL CAdotestDlg::OnInitDialog()  { ::CoInitialize(NULL); //初始化

orange_xxx的专栏 2329

ado连接sql server 数据库

Provider=SQLOLEDB;Persist Security Info=False;Server=ww;User ID=sa;Password=;Database=Mydatabase;

乌篷船 743

js中访问SqlServer数据库

1 <script language="JavaScript"> 2 // 创建数据库对象 3 var objdbConn = new ActiveXObject("ADODB.Connection"); 4 // DSN字符串 5 var strdsn = "Driver={SQL Server};SERVER=1...

weixin_34034261的博客 1627
上一篇: warning C4819: The file contains a character that cannot be represented in the current code page
下一篇: VC编程中利用ADO方式访问SQL Server 2012数据库(2) - 读写数据库
Sacomplex
博客等级 码龄14年 18粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值