下面是编程之家 jb51.cc 通过网络收集整理的代码片段。
编程之家小编现在分享给大家,也给大家做个参考。
class sqlService { public: sqlService(string procName); ~sqlService(void); void AddPara(string paraName,_variant_t val); void AddParaOut(string paraName,_variant_t& val); void Insert(); void Delete(); void Update(); void RefreshCmdPara(); _RecordsetPtr& Query(); void ModifyPro(string& newProName); private: void ExitConnect(); void OnInitADOConn(); bool ExecuteProc(); private: _ConnectionPtr m_pConnection; _RecordsetPtr m_pRecordset; _CommandPtr m_pCmd; string m_ProcName; }; #include "StdAfx.h" #include "sqlService.h" #import "c:program filescommon filessystemadomsado15.dll" no_namespace,rename("EOF","adoEOF") sqlService::sqlService(string procName) { m_pCmd=NULL; m_pConnection=NULL; m_pRecordset=NULL; m_ProcName=procName; } sqlService::~sqlService(void) { ExitConnect(); } void sqlService::OnInitADOConn() { ::CoInitialize(NULL); HRESULT hr; try { hr=m_pConnection.CreateInstance("ADODB.Connection");// if(SUCCEEDED(hr)) { _bstr_t strConnect="Provider=sqlOLEDB;Server=.;Database=SURF;UID=sa;PWD=123;"; m_pConnection->Open(strConnect,"",adModeUnkNown); m_pConnection->CursorLocation=adUseClient; } } catch(_com_error& e) { MessageBox(NULL,(LPCWSTR)e.Description(),_T("打开数据库失败"),MB_OK); m_pConnection->Close(); m_pConnection.Release(); m_pConnection=NULL; return ; } try { hr=m_pRecordset.CreateInstance("ADODB.Recordset"); if(SUCCEEDED(hr)) { m_pRecordset->CursorType=adOpenKeyset; m_pRecordset->LockType=adLockOptimistic; m_pRecordset->PutActiveConnection(m_pConnection.GetInterfacePtr()); } } catch(_com_error& e) { MessageBox(NULL,_T("记录集创建失败"),MB_OK); m_pConnection->Close(); m_pRecordset->Close(); m_pConnection.Release(); m_pRecordset.Release(); m_pConnection=NULL; m_pRecordset=NULL; return ; } try { hr=m_pCmd.CreateInstance(_uuidof(Command)); if(SUCCEEDED(hr)) { m_pCmd->ActiveConnection=m_pConnection; m_pCmd->CommandType=adCmdstoredProc; m_pCmd->CommandText=_bstr_t(m_ProcName.c_str()); } } catch(_com_error& e) { MessageBox(NULL,_T("命令创建失败"),MB_OK); m_pConnection->Close(); m_pRecordset->Close(); m_pConnection->Release(); m_pRecordset->Release(); m_pCmd.Release(); m_pConnection=NULL; m_pRecordset=NULL; m_pCmd=NULL; return ; } } bool sqlService::ExecuteProc()//执行增删改操作 { if(m_pConnection==NULL) OnInitADOConn(); if(m_pCmd!=NULL) { m_pCmd->Execute(NULL,NULL,adCmdstoredProc); } return true; } void sqlService::Insert()//执行增 操作 { ExecuteProc(); } void sqlService::Delete()//执行 删 操作 { ExecuteProc(); } void sqlService::Update()//执行 改 操作 { ExecuteProc(); } _RecordsetPtr& sqlService::Query() { if(m_pConnection==NULL) OnInitADOConn(); if(m_pCmd!=NULL) { m_pRecordset=m_pCmd->Execute(NULL,adCmdstoredProc); } return m_pRecordset; } void sqlService::RefreshCmdPara() { if(m_pCmd!=NULL) { m_pCmd.Release(); m_pCmd=NULL; } try { HRESULT hr=m_pCmd.CreateInstance(_uuidof(Command)); if(SUCCEEDED(hr)) { m_pCmd->ActiveConnection=m_pConnection; m_pCmd->CommandType=adCmdstoredProc; m_pCmd->CommandText=_bstr_t(m_ProcName.c_str()); } } catch(_com_error& e) { MessageBox(NULL,MB_OK); m_pConnection->Close(); m_pRecordset->Close(); m_pConnection->Release(); m_pRecordset->Release(); m_pCmd.Release(); m_pConnection=NULL; m_pRecordset=NULL; m_pCmd=NULL; return ; } } void sqlService::ExitConnect() { if(m_pRecordset!=NULL&&m_pRecordset->State) { m_pRecordset->Close(); m_pRecordset.Release(); m_pRecordset=NULL; } if(m_pConnection!=NULL&&m_pConnection->State) { m_pConnection->Close(); m_pConnection.Release(); m_pConnection=NULL; } if(m_pCmd!=NULL) { m_pCmd.Release(); m_pCmd=NULL; } ::CoUninitialize(); } void sqlService::AddPara(string paraName,_variant_t val) { if(m_pConnection==NULL) OnInitADOConn(); if(m_pCmd!=NULL) { _ParameterPtr pPara=m_pCmd->CreateParameter(_bstr_t(paraName.c_str()),adBSTR,adParamInput,255,val); m_pCmd->Parameters->Append(pPara); } } void sqlService::AddParaOut(string paraName,_variant_t& val) { if(m_pConnection==NULL) OnInitADOConn(); if(m_pCmd!=NULL) { _ParameterPtr pPara=m_pCmd->CreateParameter(_bstr_t(paraName.c_str()),adParamOutput,val); m_pCmd->Parameters->Append(pPara); } } void sqlService::ModifyPro(string& newProName) { m_ProcName=newProName; m_pCmd->CommandText=_bstr_t(m_ProcName.c_str()); }
以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。