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

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.csdn.net/renyhui/article/details/27082529


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值