龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

vc对Access数据库访问方法(2)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
BOOL CADODB::ADOUpdata(CString strCommand) ...{ if (!bOpenDB) ...{ return FALSE; } m_pCommand-CommandText = (_bstr_t)strCommand; m_pCommand-Execute(NULL,NULL,adCmdText); //执行操作 return TRUE; }

BOOL CADODB::ADOUpdata(CString strCommand)
...{
    if (!bOpenDB)
    ...{    return FALSE;    }

    m_pCommand->CommandText = (_bstr_t)strCommand;
    m_pCommand->Execute(NULL,NULL,adCmdText);          //执行操作

    return TRUE;
}

_RecordsetPtr CADODB::ADOSelect(CString strCommand)
...{
    if (!bOpenDB)
    ...{    return NULL;     }

    m_pCommand->CommandText = (_bstr_t)strCommand;
    return m_pCommand->Execute(NULL,NULL,adCmdText);
}
使用举例:

 ADOCtrl.m_strSQL.Format("SELECT * FROM MyTable");  //SQL语句
 ADOCtrl.ADOConnection();
 ADOCtrl.m_pRecordset = ADOCtrl.ADOSelect(ADOCtrl.m_strSQL);
 while( !ADOCtrl.m_pRecordset->adoEOF )
 ...{   //获取字段信息, 注意字符类型变换: CString <-> CHAR* <-> _bstr_t
  CString str = (CHAR*)(_bstr_t)ADOCtrl.m_pRecordset->GetCollect("NAME");
  ADOCtrl.m_pRecordset->MoveNext();
 }
 ADOCtrl.ADOClose();

 ADOCtrl.m_strSQL.Format("INSERT INTO MyTable(NAME,AGE) VALUES ('%s','%d')",myname,age);
 //SQL语句
 ADOCtrl.ADOConnection();
 ADOCtrl.ADOUpdata(ADOCtrl.m_strSQL);  //插入一条记录
 ADOCtrl.ADOClose();
PS:
// Get the max ID value;
ADOCtrl.m_strSQL.Format("SELECT MAX(ID) as mID FROM GeneralTable");
ADOCtrl.m_pRecordset = ADOCtrl.ADOSelect(ADOCtrl.m_strSQL);
_variant_t mmID = ADOCtrl.m_pRecordset->GetCollect("mID");
int newID = ++mmID.intVal;  //将_variant_t的数据类型变成整型

关于.udl的使用:

1."提供程序"->选择:Microsoft Jet 4.0 OLE DB Provider;

2."连接"->输入数据库名称(可直接写数据库名, 不要加地址);登录信息不动;

3."所有"->Data Source 的值为 数据库名全称

精彩图集

赞助商链接