平时,给定ADO例如使用以下过程数据源中的数据的数据库应用程序

(1) 创建一个Connection 物。定义的连接字符串信息。它包含了数据源名称、用户ID、密码、连接超时 、 默认数据库的位置和光标。一 Connection 数据

源的一次会话。能够通过 Connection 对象控 制事务,即运行BeginTrans、CommitTrans 和RollbackTrans 方法。

(2) 打开数据源。建立同数据源的连接。

(3) 执行一个SQL命令。一旦连接成功,就能够执行查询了。能够以异步方式执行查询,也能够异步地处 理查询结果,ADO 会通知提供者后台提供数据。

这样能够让应用程序

继续处理其他事情而不必等待。

(4) 使用结果集。完毕了查询以后,结果集就能够被应用程序使用了。在不同的光标类型下。能够在客户 端或者server端浏览和改动行数据。

(5) 终止连接。当完毕了全部数据操作后,能够销毁这个同数据源的连接。

我们按以上的步骤分析一下:

1、首先在stdafx.h头文件里首先导入msado.dll文件

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

因为我们须要对数据库文件里的数据进行操作,这里在C**App.h中首先定义要使用的三个智能指针

_ConnectionPtr:指向ADO 的 Connect 对象的指针。

_RecordsetPtr:指向ADO 的 Recordset 对象的指针。

_CommandPtr:指向 ADO 的 Command 对象的指针。

ADO的对象使用流程描写叙述

ado库是一组com动态库。这就意味着在应用程序在调用ado前,比需初始化OLE/COM库环境,可在C**App.cpp文件里的InitInstance()函数中对其初始化

然后定义hr对象。作为函数的返回值,HRESULT返回值说明 假设函数正常执行。则返回 S_OK,同一时候真正的函数执行结果则通过參数指针返回。

假设遇到了异常情况,则COM系统经过推断。会返回对应的错误值。

在把m_pConnection实例化之后,我们就能够定义用于连接字符的信息,我们能够用.UDL文件得到连接字符串

详细方法,先新建一个.txt文件,然后将后缀名改成.udl

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcmVueWh1aQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcmVueWh1aQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

然后我们以记事本的方式打开我们的文件,最后一行

Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=****;Initial
Catalog=学生成绩管理系统;Data Source=HUI\\SQL

注意没有Password自己加入上即可,不然程序会报错,后面假设有\转义字符。注意我们应该再加上一个\。C语言的语法。(红色部分在.udl文件里没有)

当然我们也能够使用 SQL Native Client 11.0,后面的也能够用windows身份登陆。注意windows身份登陆时。不须要加入password!

2、打开数据源,同一时候同数据源建立连接

Open方法:使用Open方法能够建立到数据源的物理连接。

Open函数具体定义:

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

參数意义:

ConnectionString :可选,类型为字符串,包括连接信息,假设设置了ConnectionString属性,该參数能够不设置

UserID:可选。字符串,包括建立连接时所使用username

Password:可选,字符串。包括建立时所使用的password。

Option:可选,决定该方法是在连接建立之后(异步)还是连接建立之前(同步)返回,该值能够是例如以下两个常量:adConnectionUnsepecified(默认值,同步)和adAsyncConnect(异步)

Close方法:用来关闭到数据源的连接,訪问数据库完毕后,关闭连接。释放有关联的系统资源。关闭对象并不代表将它从内存中删掉,能够更改它的属性设置然后再次打开它

BOOL CLibraryApp::InitInstance()
{
::CoInitialize(NULL); //初始化OLE/COM库环境
HRESULT hr = NULL;
try
{
hr = m_pConnection.CreateInstance(_uuidof(Connection));//创建连接对象实例
if (SUCCEEDED(hr))
{
m_pConnection->ConnectionString =
("Provider = SQLOLEDB.1; Persist Security Info = False; User ID = sa; Password=renhui; Initial Catalog = 学生成绩管理系统; Data Source = HUI\\SQL");
//("Provider=SQLNCLI11.1;Integrated Security=SSPI;Persist Security Info=False;User ID="";Initial Catalog=学生成绩管理系统;Data Source=HUI\\SQL;Initial File Name="";Server SPN=""");
hr = m_pConnection->Open("", "", "", adConnectUnspecified);//打开数据库
if (FAILED(hr))
{
AfxMessageBox(_T("Open Failed!"));
return FALSE;
}
}
else
{
AfxMessageBox(_T("Create instance of connection failed!"));
return FALSE;
}
}
catch (_com_error e)
{
CString temp;
temp.Format("数据库连接错误\r\n错误信息为:%s", e.ErrorMessage());
AfxMessageBox(temp);
return FALSE;
}
... ...
}

至此,我们的数据库就成功的连接上了

大家遇到什么数据库连接方面的问题,也欢迎和我交流,希望大家能一起进步。(但有限的,因为水平的,你可能不能够回答)

版权声明:本文博主原创文章,博客,未经同意不得转载。

vs2013 ADO联系SQL server2012数据库的更多相关文章

  1. 下载、安装 SQL server 2012,一步一步教你安装、激活sql server2012数据库 ,附有数据库安装包

    一. 准备阶段:下载2012 SQl server数据库安装包. 链接如下: 文件名:sql2012.zip 百度云链接:https://pan.baidu.com/s/1-fw1dCVbfU1bKM ...

  2. SQL Server2012数据库开启远程连接

    在我们使用SQL Server数据库的时候很重要的一点就是开启数据库的远程连接,这是因为很多时候数据库部署在远程的服务器上会比较方便,而部署在客户端的话,由于客户端不固定,所以需要经常去部署,这样容易 ...

  3. SQL Server2012数据库的备份和还原

    一.数据库的备份: 1.选择要备份的数据库“accountInfo”,点击鼠标右键 → 任务 → 备份 2.在打开的“备份数据库 —accountInfo”对话框中,先点击删除,然后点击“添加” 3. ...

  4. MFC ADO连接Sql Server数据库报无效指针的问题

    相关症状:  Win7sp1上编译的ADO程序无法在低版本系统上运行,创建ADO时提示错误:0x80004002 解决办法如下:  1.下载:  http://download.microsoft.c ...

  5. SQL Server2012中如何通过bak文件还原SQL Server2012数据库

    1 登陆完数据库后,不要新建数据库,直接点击“数据库”然后右击"还原数据库". 2 在"源"选项中选择"设备". 3 选择相应的bak文件并 ...

  6. Visual Basic 2012 借助DataGridView控件将SQL server2012 数据导入到Excel 2010

    摘  要: SQL Server 2012 数据和Excel 2010之间的连接和数据的传输,本篇文章主要针对的是SQL Server 2012 数据导入到Excel 2010文件中.Excel软件对 ...

  7. 【转】PowerShell 连接SQL Server 数据库 - ADO.NET

    转至:http://www.pstips.net/connect-sql-database.html PowerShell 通过ADO.NET连接SQL Server数据库,并执行SQL脚本.工作中整 ...

  8. vs2013+sql server2012

    学习 vs2013 sql server2012使用 : linp lambda entity framework wcf tfs;

  9. 数据库 SQL Server2012安装步骤详解

    这篇文章主要给大家讲解一下数据库SQL Server2012的安装步骤(若有雷同纯属巧合,还望谅解!) 在正式安装之前,我们需要进行两个设置: ① 首先需要关闭Windows防火墙,若不关闭,后续的安 ...

随机推荐

  1. json与jsonp区别浅析(json才是目的,jsonp只是手段) (转)

    一言以蔽之,json返回的是一串数据:而jsonp返回的是脚本代码(包含一个函数调用): JSON其实就是JavaScript中的一个对象,跟var obj={}在质上完全一样,只是在量上可以无限扩展 ...

  2. Node.js : 我只需要一个店小二

    刚刚开始接触Node.js时, google了很多文章,但发现大部分都是泛泛的介绍安装,配置,以及介绍几个小例子 有一种雾里观花的感觉,所以非常困惑,不知道Node.js到底解决了什么问题,它的优势到 ...

  3. C++ 建设者继承

    微通道公用号CodingRush 分享编程.算法.机器人leanring.数据挖掘.推荐系统.知识大数据计算框架,欢迎扫码关注. 子类继承了哪些东西? 子类在继承父类的时候,父类的public成员变量 ...

  4. 输入框 js正则推断输入

    1.文本框仅仅能输入数字代码(小数点也不能输入)  <input onkeyup="this.value=this.value.replace(/\D/g,'')" onaf ...

  5. PL/SQL 游标的使用

     游标的使用 ①游标概念 为了处理SQL 语句,ORACLE 必须分配一片叫上下文( context area )的区域来处理所必需的信息, 当中包含要处理的行的数目.一个指向语句被分析以后的表示 ...

  6. DB2 “The transaction log for the database is full” 存在的问题及解决方案

    DB2在执行一个大的insert/update操作的时候报"The transaction log for the database is full.. "错误,查了一下文档是DB ...

  7. IIS在W7下使用

    1.0.发布程序

  8. rsync 只是测试,请看下一篇

    实现从客户服务器去同步资源服务器 1.解压 # tar -xzpvf rsync-2.5.6.tar.gz   编译安装 # cd rsync-2.5.6/  # ./configure --pref ...

  9. FPGA机器学习之学习的方向

    经过了2个月对机器学习的了解后.我发现了,机器学习的方向多种多样.网页排序.语音识别,图像识别,推荐系统等.算法也多种多样.看见其它的书后,我发现除了讲到的k均值聚类.贝叶斯,神经网络,在线学习等等, ...

  10. kernel 于ioctl申请书

    ioctl经营无纸装置频繁使用的类型.同时这是一个非常实用的方法进程调试. 这里正在进行wdt该文章继续 static long at91_wdt_ioctl(struct file *file, u ...