C++连接SQL
1.引入ADO
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
2.创建连接数据库类(两个指针及四个成员函数)
class CADOConn { public: CADOConn(); virtual ~CADOConn(); _ConnectionPtr m_pConnection; //对象智能指针连接操作数据库 _RecordsetPtr m_pRecordPtr; //Recordset对象指针(记录集) //初始化连接数据库,执行查询,执行SQL语句,断开连接 void OnInitDBConnect(); _RecordsetPtr &GetRecordSet(_bstr_t bstrSQL); BOOL ExecuteSQL(_bstr_t bstrSQL); void ExitConnect(); };
3.四个成员函数实现
void CADOConn::OnInitDBConnect() { ::CoInitialize(NULL); //初始化OLE/COM库环境 try { //创建connection对象 m_pConnection.CreateInstance("ADODB.Connection"); //设置连接字符串 _bstr_t strConnect="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=自己数据库填写处;Data Source=."; //SERVER和UID,PWD的设置根据实际情况来设置 m_pConnection->Open(strConnect,"","",adModeUnknown); } catch(_com_error e) { AfxMessageBox(e.Description()); //显示错误信息 } } _RecordsetPtr & CADOConn::GetRecordSet(_bstr_t bstrSQL) { try { if(m_pConnection==NULL) //连接对象不存在 OnInitDBConnect(); //重新连接 m_pRecordPtr.CreateInstance(_uuidof(Recordset)); //创建记录集对象 //执行查询,等到记录集 m_pRecordPtr->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); } catch(_com_error e) //捕捉异常 { AfxMessageBox(e.Description()); //显示错误信息 } return m_pRecordPtr; //返回记录集 } BOOL CADOConn::ExecuteSQL(_bstr_t bstrSQL) { try { if(m_pConnection==NULL) OnInitDBConnect(); m_pConnection->Execute(bstrSQL,NULL,adCmdText); return true; } catch (_com_error e) { AfxMessageBox(e.Description()); return false; } } void CADOConn::ExitConnect() { if(m_pConnection!=NULL) { m_pRecordPtr->Close(); m_pConnection->Close(); } ::CoUninitialize(); }
链接:https://pan.baidu.com/s/1v5gm7n0L7TGyejCmQrMh2g 提取码:x2p5
免费分享,但是X度限制严重,如若链接失效点击链接或搜索加群 群号744933466。