ado 使用

1.导入ADO链接库

 //stdafx.h

#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")rename("BOF","adoBOF

2.初始化com库

if(!AfxOleInit()) //LOG

3.创建一个数据库连接对象

_ConnectionPtr      m_pConnection;
try  
{     
  m_pConnection.CreateInstance(__uuidof(Connection));     
  m_pConnection->Open((_bstr_t)"DSN=dbsource;Uid=sa;Pwd=800100","","",adModeUnknown);  
}
 catch(_com_error _e)
{
  CString _err= (LPCTSTR)(_bstr_t)_e.Description();
}
//last
pConnection->Close();

4.1 sql 命令

_CommandPtr pCommand;      
pCommand.CreateInstance(__uuidof(Command)); 
pCommand->ActiveConnection=pConn; 
pCommand->CommandText="INSERT like"; 
pCommand->CommandType=adCmdText; 
pCommand->Parameters->Refresh();    
pCommand->Execute(NULL,NULL,adCmdUnknown);   

4.2 记录集

 _RecordsetPtr m_pRecordset;
 try  
 {    
  	//m_pRecordset=m_pConnection->Execute(_T("select *  from"),NULL,adCmdText);
	m_pRecordset.CreateInstance(__uuidof(Recordset));  
	m_pRecordset->Open(_bstr_t(“select from...”), m_pConnection.GetInterfacePtr(),adOpenDynamic, adLockOptimistic, adCmdText;
 }
 catch(_com_error _e)
 {
  	CString _err= (LPCTSTR)(_bstr_t)_e.Description();
 }

//read

m_pRecordset->MoveFirst();

while (m_pRecordset->adoEOF)  
{  
        //like
	//pRecordset->getCollect(“COLUMN_NAME”);
	//pRecordset->getCollect(index);
 	char* _name=(char*)(_bstr_t)m_ado.m_pRecordset->GetCollect("id"));  
	m_pRecordset->MoveNext();  
}
 
//add record
m_pRecordset->AddNew();  
m_pRecordset->PutCollect("name ",(_bstr_t)"fly");  
m_pRecordset->Update();
</pre><span style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; padding-top:0px; padding-right:0px; padding-bottom:0px; padding-left:0px; border-style:initial; border-color:initial; border-top-style:none; border-right-style:none; border-bottom-style:none; border-left-style:none; border-width:initial; border-color:initial; background-color:inherit"><span style="color:#333333"></span></span></p><p></p><div class="alt" style="margin-top:0px!important; margin-right:0px!important; margin-bottom:0px!important; margin-left:0px!important; padding-top:0px!important; padding-right:3px!important; padding-bottom:0px!important; padding-left:10px!important; border-style:initial; border-color:initial; border-top-style:none; border-right-style:none; border-bottom-style:none; border-left-style:solid; border-width:initial; border-color:initial; list-style-type:decimal-leading-zero; list-style-position:outside!important; border-left-color:rgb(108,226,108); line-height:18px">//update</div><div class="alt" style="margin-top:0px!important; margin-right:0px!important; margin-bottom:0px!important; margin-left:0px!important; padding-top:0px!important; padding-right:3px!important; padding-bottom:0px!important; padding-left:10px!important; border-style:initial; border-color:initial; border-top-style:none; border-right-style:none; border-bottom-style:none; border-left-style:solid; border-width:initial; border-color:initial; list-style-type:decimal-leading-zero; list-style-position:outside!important; border-left-color:rgb(108,226,108); line-height:18px"><pre class="cpp" name="code">m_pRecordset->Move((long)pos);  
m_pRecordset->PutCollect("id",(_bstr_t)m_id); 
m_pRecordset->Delete(adAffectCurrent); 
//delete
m_pRecordset->Move(pos, vtMissing);  
m_pRecordset->Delete(adAffectCurrent); 
//last

m_pRecordset->Close();

4.3存储过程

_CommandPtr   cmmd; 
  HRESULT   hr   =   cmmd.CreateInstance(__uuidof(Command));
  if(FAILED(hr))       
  {         
   printf("NewNetDatabase()中创建_CommandPtr对象失败");               
  } 
  _ParameterPtr   param;  
  param=cmmd->CreateParameter("ReturnValue",adInteger,   adParamReturnValue, sizeof(int),SqlReturn);      
  cmmd->Parameters->Append(param);    
  param=cmmd->CreateParameter("TaskID",adInteger,   adParamInput, sizeof(int),_currTask->m_TaskID);      
  cmmd->Parameters->Append(param);       
  param   =   cmmd->CreateParameter("ItenID",adInteger,adParamOutput,sizeof(int),ItemId);      
  cmmd->Parameters->Append(param);       
  param   =   cmmd->CreateParameter("TeNum",adVarChar,adParamOutput,50,_variant_t(Number.c_str()));
  cmmd->Parameters->Append(param);       
  cmmd->CommandText=_bstr_t("CTI_GetATaskItem");//存储过程的名称       
  cmmd->ActiveConnection   =  m_pConnection;//需要使用的ADO连接       
  cmmd->CommandType=adCmdStoredProc;  
  try
  {   
   cmmd->Execute(NULL,   NULL,   NULL); 
   SqlReturn=(int)cmmd->Parameters->GetItem("ReturnValue")->GetValue();//通过参数返回值 
   if(SqlReturn == 1)
   {
    ItemId=(int)(cmmd->Parameters->GetItem("ItenID")->GetValue());//通过参数返回值  
    Number=(LPCSTR)_bstr_t(cmmd->Parameters->GetItem("TeNum")->GetValue());;//通过参数返回值 
   }  
  }
  catch (_com_error e)
  {
   printf("%s",e.Description());
   cmmd.Detach();  
   break;
  }
  cmmd.Detach();   
  


猜你喜欢

转载自blog.csdn.net/stafniejay/article/details/47405331
ADO
今日推荐