#include "sqlServer.h"
#include <iostream>
#include<iomanip>
#include <string>
using namespace std;
/*
数据库连接步骤:
(1)初始化com组件 CoInitialize()
(2)实例化连接对象
(3)建立连接
(4)实例化数据集
(5)获取数据
*/
SqlConnection::SqlConnection()
{
// m_pConnection=NULL;
// m_pRecordset=NULL;
CoInitialize(NULL); //必须先初始化com组件
}
SqlConnection::~SqlConnection()
{
}
void SqlConnection::OnInitConn()
{
// HRESULT hr=m_pConnection.CreateInstance(__uuidof(Connection));
HRESULT hr=m_pConnection.CreateInstance("ADODB.Connection");
if(FAILED(hr))
{
cout<<"_ConnectionPtr对象指针实例化失败"<<endl;
return;
}
else
try
{
// _bstr_t strConnect="Driver={sql server};server=127.0.0.1,1433;uid=sa;pwd=013605;database=Stu;";
// m_pConnection->Open(strConnect,"","",adModeUnknown); //打开与数据库的连接
//创建connection对象
// m_pConnection.CreateInstance("ADODB.Connection");
//设置连接字符串
_bstr_t strConnect="Provider=SQLOLEDB;Initial Catalog=Stu;Data Source=127.0.0.1";
//SERVER和UID,PWD的设置根据实际情况来设置
m_pConnection->Open(strConnect,"sa","013605",adModeUnknown);
}
catch (_com_error& e)
{
cout<<e.Description()<<endl;
}
}
_RecordsetPtr& SqlConnection::GetRecordSet(_bstr_t bstrSQL)
{
if(m_pConnection==NULL)
OnInitConn();
if(FAILED(m_pRecordset.CreateInstance( __uuidof( Recordset )))) //实例化数据集
{
cout<<"记录集对象指针实例化失败!"<<endl;
exit(0);
// return ;
}
try{
// m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pRecordset=m_pConnection->Execute(bstrSQL,NULL,adCmdText);
}catch(_com_error & e)
{
cout<<e.Description();
}
return m_pRecordset;
}
BOOL SqlConnection::ExecuteSQL(_bstr_t bstrSQL)
{
try
{
//是否已连接数据库
if(m_pConnection==NULL)
OnInitConn();
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error& e)
{
e.Description();
return false;
}
}
void SqlConnection::ExitConnect()
{
if(m_pRecordset!=NULL)
m_pRecordset->Close();
m_pConnection->Close();
m_pRecordset->Release();
m_pConnection->Release();
//释放环境
::CoUninitialize();
}
#include <iostream>
#include<iomanip>
#include <string>
using namespace std;
/*
数据库连接步骤:
(1)初始化com组件 CoInitialize()
(2)实例化连接对象
(3)建立连接
(4)实例化数据集
(5)获取数据
*/
SqlConnection::SqlConnection()
{
// m_pConnection=NULL;
// m_pRecordset=NULL;
CoInitialize(NULL); //必须先初始化com组件
}
SqlConnection::~SqlConnection()
{
}
void SqlConnection::OnInitConn()
{
// HRESULT hr=m_pConnection.CreateInstance(__uuidof(Connection));
HRESULT hr=m_pConnection.CreateInstance("ADODB.Connection");
if(FAILED(hr))
{
cout<<"_ConnectionPtr对象指针实例化失败"<<endl;
return;
}
else
try
{
// _bstr_t strConnect="Driver={sql server};server=127.0.0.1,1433;uid=sa;pwd=013605;database=Stu;";
// m_pConnection->Open(strConnect,"","",adModeUnknown); //打开与数据库的连接
//创建connection对象
// m_pConnection.CreateInstance("ADODB.Connection");
//设置连接字符串
_bstr_t strConnect="Provider=SQLOLEDB;Initial Catalog=Stu;Data Source=127.0.0.1";
//SERVER和UID,PWD的设置根据实际情况来设置
m_pConnection->Open(strConnect,"sa","013605",adModeUnknown);
}
catch (_com_error& e)
{
cout<<e.Description()<<endl;
}
}
_RecordsetPtr& SqlConnection::GetRecordSet(_bstr_t bstrSQL)
{
if(m_pConnection==NULL)
OnInitConn();
if(FAILED(m_pRecordset.CreateInstance( __uuidof( Recordset )))) //实例化数据集
{
cout<<"记录集对象指针实例化失败!"<<endl;
exit(0);
// return ;
}
try{
// m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pRecordset=m_pConnection->Execute(bstrSQL,NULL,adCmdText);
}catch(_com_error & e)
{
cout<<e.Description();
}
return m_pRecordset;
}
BOOL SqlConnection::ExecuteSQL(_bstr_t bstrSQL)
{
try
{
//是否已连接数据库
if(m_pConnection==NULL)
OnInitConn();
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error& e)
{
e.Description();
return false;
}
}
void SqlConnection::ExitConnect()
{
if(m_pRecordset!=NULL)
m_pRecordset->Close();
m_pConnection->Close();
m_pRecordset->Release();
m_pConnection->Release();
//释放环境
::CoUninitialize();
}