WEB开发网
开发学院软件开发VC VC++6.0中用ADO存取Access数据库的总结 阅读

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

 2010-02-19 20:33:14 来源:WEB开发网   
核心提示:3.操作一个结果集(1)、遍历(读取)a)、用pRecordset->adoEOF来判断数据库指针是否已经移到结果集的末尾了;m_pRecordset->BOF判断是否 在第一条记录前面:while(!m_pRecordset->adoEOF){var = m_pRecordset->GetCo

3.操作一个结果集

(1)、遍历(读取)

a)、用pRecordset->adoEOF来判断数据库指针是否已经移到结果集的末尾了;m_pRecordset->BOF判断是否 在第一条记录前面:while(!m_pRecordset->adoEOF)
{
  var = m_pRecordset->GetCollect("Name");
  if(var.vt != VT_NULL)
    strName = (LPCSTR)_bstr_t(var);
  var = m_pRecordset->GetCollect("Age");
  if(var.vt != VT_NULL)
    strAge = (LPCSTR)_bstr_t(var);
  m_AccessList.AddString( strName + " --> "+strAge );
  m_pRecordset->MoveNext();
}
b)、取得一个字段的值的办法有两种办法

一是

//表示取得第0个字段的值m_pRecordset->GetCollect("Name");或者m_pRecordset->GetCollect(_variant_t(long(0));二是

pRecordset->get_Collect("COLUMN_NAME");或者pRecordset->get_Collect(long(index));(2)、添加

a)、调用m_pRecordset->AddNew();

b)、调用m_pRecordset->PutCollect();给每个字段赋值

c)、调用m_pRecordset->Update();确认

(3)、修改

(4)、删除

a)、把记录指针移动到要删除的记录上,然后调用Delete(adAffectCurrent)try
{
  // 假设删除第二条记录
  m_pRecordset->MoveFirst();
  m_pRecordset->Move(1);
  // 从0开始
  m_pRecordset->Delete(adAffectCurrent);
  // 参数adAffectCurrent为删除当前记录
  m_pRecordset->Update();
}
catch(_com_error *e)
{
  AfxMessageBox(e->ErrorMessage());
}

4.直接执行SQL语句,除了要用到结果集其余的大部分功能都可以直接用SQL语言实现

(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);

Tags:VC 中用 ADO

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接