ado库——连接sql server数据库

头文件
database.h

#pragma once

// 说明:#import的这个路径,windows系统里面自带有ado的动态库。
//不同的操作系统可能msado15.dll这个库的名字不一样,这里以windows10为例,我这里是msado15.dll
#import "C:\Program Files\Common Files\System\ado\msado15.dll"  \
rename("EOF", "adoEOF"), rename("BOF", "adoBOF")

// 忽略警告
//#pragma warning(default:4146)

//#include "stdafx.h"
#include <tchar.h>
#include<iostream>
#include <string>

using namespace std;
using namespace ADODB;

//定义数据库连接类
class ADOConn
{
public:
	_ConnectionPtr m_pConnection;
	_RecordsetPtr m_pRecordset;
public:
	ADOConn();
	virtual ~ADOConn() {};
	void OnInitADOConn();//初始化连接
	void ExecuteSQL(_bstr_t bstrSQL);//执行SQL语句

};

cpp文件

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

//构造函数定义
ADOConn::ADOConn()
{
	CoInitialize(NULL); //初始化必不可少
	HRESULT hr = m_pConnection.CreateInstance(_uuidof(Connection));
	if (FAILED(hr))
		cout << "_ConnectionPtr对象指针实例化失败!!!" << endl;
}
//初始化连接函数定义
void ADOConn::OnInitADOConn()
{
	try
	{	//在COM接口中,参数若为字符串, 一定要用BSTR  
		_bstr_t con_bstr = "Driver={sql server};server=192.168.0.151,1433;uid=sa;pwd=3edc9ijn~;datsbase=test";
		if (m_pConnection->State)
			m_pConnection->Close();
		m_pConnection->Open(con_bstr, "","", adModeUnknown);// adModeUnknown 缺省,当前的许可权未设置
	}
	catch (_com_error& e)
	{
		std::cout << "连接异常" << std::endl;
		std::cout << e.Description() << std::endl;
	}
}

//执行SQL语句函数定义
void ADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
	try
	{
		//你的ADO代码
		m_pRecordset = m_pConnection->Execute(bstrSQL, NULL, adCmdText);
	}
	catch (_com_error& e)
	{
		cout << e.Description();
	}
}

int main(int argc, _TCHAR* argv[])
{
	ADOConn con;
	con.OnInitADOConn();
	//float x = 12.3f;
	//float y = 34.5f;
	//float r = 1.1f;
	//char* data = new char[255];
	//sprintf_s(data,sizeof(data) ,"insert into DB_points.dbo.tb_location(X,Y,R) values(%f,%f,%f)", x, y, r);//将SQL语句存放到data
	//string str = data;
	//_bstr_t strSql = str.c_str();//string类型转化为_bstr_t类型
	_bstr_t strSql = "INSERT INTO [test].[dbo].[user](userName,passWord,realName,isActive) values('liu','2345','韩',1)";
	con.ExecuteSQL(strSql);
	//delete[]data;//释放内存
	con.m_pConnection->Close();
	::CoUninitialize();
	system("pause");
	return 0;

}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值