vc对Access数据库访问方法(2)
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 的值为 数据库名全称