ADO连接本机本地SQLSERVER数据库[基本]

#include "stdafx.h"
#include <iostream>


int _tmain(int argc, _TCHAR* argv[])
{
	_ConnectionPtr	m_pConnection;
	_RecordsetPtr	m_pRecordset;
// 	_CommandPtr		m_pCommand;
// 	_ParameterPtr	m_pParameter;

	::CoInitialize(NULL);

	try
	{
		HRESULT hr = 0;
		hr = m_pConnection.CreateInstance(__uuidof(Connection));
		if (FAILED(hr))
		{
			throw std::exception("m_pConnection.CreateInstance errorr!");
		}
		hr = m_pConnection->Open("Provider=SQLOLEDB;Data Source=LIYOUHONG\\SQLEXPRESS;Initial Catalog=MyTestConnection;Integrated Security=SSPI;","","",adModeUnknown);
		if (FAILED(hr))
		{
			throw std::exception("m_pConnection->Open error");
		}
		hr = m_pRecordset.CreateInstance(__uuidof(Recordset));
		if (FAILED(hr))
		{
			throw std::exception("m_pRecordset.CreateInstance error");
		}
		m_pRecordset->CursorLocation = adUseClient;
		m_pRecordset->PutActiveConnection(m_pConnection.GetInterfacePtr());

		_bstr_t strSql = "select * from TestTable1";
		hr = m_pRecordset->Open(_bstr_t(strSql), vtMissing, adOpenDynamic, adLockBatchOptimistic, adCmdText);
		if (FAILED(hr))
		{
			throw std::exception("m_pRecordset->Open error");
		}
		_variant_t RecordsAffected;
		while (!m_pRecordset->adoEOF)
		{
			RecordsAffected = m_pRecordset->GetCollect(_variant_t((long)0));
			m_pRecordset->MoveNext();
		}

	}
	catch (_com_error e)
	{
		cout<<e.ErrorMessage()<<endl;
	}
	catch(std::exception& e)
	{
		cout<<e.what()<<endl;
	}
	
	m_pRecordset->Close();
	m_pConnection->Close();
	::CoUninitialize();
	return 0;
}

stdafx.h中需要加入的语句

#import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename("EOF", "adoEOF")

注意事项:

1. 一开始先在工程中立刻加入 #import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename("EOF", "adoEOF"),然后进行编译,在debug(如果配置是debug)下会生成msado15.tlh和msado15.tli这两个文件,然后把这两个文件放入工程目录下,加入工程,如此那些_ConnectionPtr,_RecordsetPtr才会有定义可找。(至少我是这样做的,不知其他人是不是可以直接成功)

2. 连接数据库时这里使用的是“可信任连接”方式,就是使用windows的身份认证,如果你是用当前用户安装的sqlserver实例,则就可以直接连接成功。其他方式还有网络模式,一般模式,尚未做过试验。

3. 执行时把Data Source改成自己的sqlserver实例名称。

4. 以上代码也属于本人网上查找,然后东拼西凑而来,仅供参考,不当之处,望不吝赐教。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值