vs2013 ADO联系SQL server2012数据库

平时,给定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" >

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

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

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;
	}
	... ...
}

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

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

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

时间: 2024-10-31 01:33:07

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

如何开启SQL Server2012数据库的远程连接

SQL Server默认是不允许远程连接的,如果想要在本地用连接远程服务器上的SQLServer2012数据库,需要确认以下环节:1)如果是工作组环境,则需要使用SQL Server身份验证方式2)如果是Windows域环境,则可使用Windows身份验证或者SQL Server身份验证 现在以域环境下SQL Server身份验证方式为例: 1)启用SQLServer身份验证模式进行登录(需重启实例): 2)建立可用的SQL Server服务器登录名 3)允许远程连接到服务器实例 4)设置服务器

读书笔记利用T-SQL语句快速清理ZBLOG程序的SQL SERVER2012数据库内容

最近使用了ZBLOG+SQL SERVER搭建了一个博客系统,采用的是ASP程序,因为我数据量很小,使用插件生成HTML文件的话,就没有必要使用PHP了,而且我上次也讲过,PHP的博客程序存在一些问题,很消耗资源,而且数据量也不能做的很大,更重要的是静态化还是不能抵抗流量的冲击. 环境配置:windows server服务器+ZBLOG ASP程序+SQL SERVER2012数据库+域名(读后感http://www.simayi.net读书笔记)+读书主题. 好了,下面还是讲述我最近学习的T-

利用T-SQL语句快速清理ZBLOG程序的SQL SERVER2012数据库内容

最近使用了ZBLOG+SQL SERVER搭建了一个博客系统,采用的是ASP程序,因为我数据量很小,使用插件生成HTML文件的话,就没有必要使用PHP了,而且我上次也讲过,PHP的博客程序存在一些问题,很消耗资源,而且数据量也不能做的很大,更重要的是静态化还是不能抵抗流量的冲击.环境配置:windows server服务器+ZBLOG ASP程序+SQL SERVER2012数据库+域名((读后感http://www.simayi.net读书笔记))+读书主题.好了,下面还是讲述我最近学习的T-

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

相关症状:  Win7sp1上编译的ADO程序无法在低版本系统上运行,创建ADO时提示错误:0x80004002 解决办法如下:  1.下载:  http://download.microsoft.com/download/6/4/3/64318ED2-7E18-4A5C-80E2-9BDA0DF02DB3/msado60_Backcompat_i386.tlb 2.相关代码导入修改为:  #import "msado60_Backcompat.tlb" no_namespace re

SQL Server2012数据库的备份和还原

一.数据库的备份: 1.选择要备份的数据库“accountInfo”,点击鼠标右键 → 任务 → 备份 2.在打开的“备份数据库 —accountInfo”对话框中,先点击删除,然后点击“添加” 3.在弹出的“选择备份目标”对话框中选择好路径和备份的文件名 4.之后在备份数据库窗口点击确定,等待备份成功

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

1 登陆完数据库后,不要新建数据库,直接点击“数据库”然后右击"还原数据库". 2 在"源"选项中选择"设备". 3 选择相应的bak文件并进行添加. 4 添加完之后点击确定,注意在目标这一栏中数据库名称都可以不用写,注意勾选要还原的数据集. 5 点击"确定"还原备份的数据库. 注意:在还原的时候注意一点就是不用首先就将该数据库建好,这样还原的时候可能由于备份的bak文件和新建的数据库的数据表不同,所以往往造成还原错误,所以一

Sql Server2012 报表服务中的SharePoint集成模式配置

前言 http://www.microsoft.com/zh-CN/download/details.aspx?id=29068# 在sql server2012报表配置管理器上没有“sharepint集成”模式选择项(采用新建),如下图: 怎么回事情呢?后来通过查询资料才知道,如下: 重要提示 从 SQL Server 2012 版本开始,Reporting Services 配置管理员不设计用来管理 SharePoint 模式报表服务器. SharePoing 模式通过使用 SharePoi

VS2013的C#项目与SQL Server2012无法连接的问题

我们一般在重新装笔记本系统之后,当重新运行VS2013中的C#项目时,会出现无法连接数据库的问题.那有可能是SQL Server2012安装的有问题了.一.SQL Server服务没有启动:二.SQL Server中sa角色不能登录(现在数据库不是混合型身份验证模式):三.SQL Server不能远程登录. 1.保证,如下图所示“允许远程连接到此服务器”前有“对钩”. 2.打开SQL Server配置管理器,保证如下图中,TCP/IP都启用了. 其他的问题查看“由Windows身份验证设置为混合

团队项目:VS2013和SQL Server2012的连接使用

由于团队项目是要开发一款多人网游,所以需要用到注册页面,同时游戏内的一些实时数据也全要记录在数据库中 所以,最近学到了VS2013和SQL Server2012的连接,先附上代码: #include "stdafx.h" #include "stdlib.h" #include <stdio.h> #include <string.h> #include <windows.h> #include <sql.h> #in