VC++6.0 中用 ADO 存取 Access 数据库的一点总结

来源: 作者: 2007-10-26 出处:pcdog.com

access  access数据库  ddn  qq  ssl  
上一页 1 2 3 4 下一页 

  (1)、用_CommandPtr和_RecordsetPtr配合

  _CommandPtr    m_pCommand;
m_pCommand.CreateInstance(__uuidof(Command));
// 将库连接赋于它
m_pCommand->ActiveConnection = m_pConnection; 
// SQL语句

m_pCommand->CommandText = "SELECT * FROM DemoTable"; 
// 执行SQL语句,返回记录集
m_pRecordset = m_pCommand->Execute(NULL, NULL,adCmdText);   
(2)、直接用_ConnectionPtr执行SQL语句

  _RecordsetPtr Connection15::Execute ( _bstr_t CommandText,
                   VARIANT * RecordsAffected,
                   long Options )
其中CommandText是命令字串,通常是SQL命令。
参数RecordsAffected是操作完成后所影响的行数,
参数Options表示CommandText中内容的类型,Options可以取如下值之一:
adCmdText:表明CommandText是文本命令
adCmdTable:表明CommandText是一个表名
adCmdProc:表明CommandText是一个存储过程
adCmdUnknown:未知
      
例子:
_variant_t RecordsAffected;
m_pConnection->Execute("UPDATE users SET old = old+1",&RecordsAffected,adCmdText);   
5.调用存储过程

  (1)、利用_CommandPtr

  _CommandPtr  m_pCommand;
m_pCommand.CreateInstance(__uuidof(Command));
m_pCommand->ActiveConnection = m_pConnection; // 将库连接赋于它
m_pCommand->CommandText = "Demo"; 
m_pCommand->Execute(NULL,NULL, adCmdStoredProc);   
(2)、直接用_ConnectionPtr直接调用(见4.(2))

  6.遍历数据库中的所有表名 _ConnectionPtr m_pConnect;
_RecordsetPtr pSet;
HRESULT hr;
try
{ 
  hr = m_pConnect.CreateInstance("ADODB.Connection");  
  if(SUCCEEDED(hr)) 
  { 
    CString dd; 
    dd.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s",file); 
    hr = m_pConnect->Open((_bstr_t)dd,"","",adModeUnknown); 
    pSet = m_pConnect->OpenSchema(adSchemaTables);   
    while(!(pSet->adoEOF)) 
    {    
      //获取表格  
      _bstr_t table_name = pSet->Fields->GetItem("TABLE_NAME")->Value;
      
      //获取表格类型    
      _bstr_t table_type = pSet->Fields->GetItem("TABLE_TYPE")->Value;
      
      //过滤一下,只输出表格名称,其他的省略
      if ( strcmp(((LPCSTR)table_type),"TABLE")==0){
        CString tt;
        tt.Format("%s",(LPCSTR)table_name);  
        AfxMessageBox(tt);    
      }   
      pSet->MoveNext();  
    } 
    pSet->Close(); 
  } 
  m_pConnect->Close(); 
}catch(_com_error e)///捕捉异常
{ 
  CString errormessage; 
  errormessage.Format("连接数据库失败!rn错误信息:%s",e.ErrorMessage());
  AfxMessageBox(errormessage);
  return -1;
}    
7.遍历一个表中的所有字段


更多内容请看PCdog.com--数据库相关文章专题
上一页 1 2 3 4 下一页 
上一篇:ADO操作access全过程和CListCtrl的用法
下一篇:用MFC + ADO 把jpg图象文件放入ACCESS库中