主要就是连接字段,其它的ODBC的方法和操作SQL都是差不多的
voidTestAccessDBData(LPCTSTRszFilePath,LPCTSTRszUID,LPCTSTRszPWD,LPCTSTRszTabName)
{
try
{
//构造连接字符
CStringszConnect;
szConnect.Format(
_T("Driver={MicrosoftAccessDriver(*.mdb)};")
_T("DBQ=%s;")
_T("UID=%s;PWD=%s;"),
szFilePath,szUID,szPWD);
//打开数据库
CDatabasedb;
if(db.OpenEx(szConnect,db.noOdbcDialog|db.useCursorLib))
{
//查询
try
{
CStringszCmd;
szCmd.Format(_T("SELECT*FROM%s"),szTabName);
//这里可以添加附加WHERE条件如WHEREID='1234'
CRecordsetrs(&db);
if(rs.Open(AFX_DB_USE_DEFAULT_TYPE,szCmd,rs.executeDirect))
{
while(!rs.IsEOF())
{
CStringsVal;
rs.GetFieldValue(_T("ID"),sVal);
TRACE(_T("ID=%s\n"),(LPCTSTR)sVal);
rs.MoveNext();
}
//关闭查询
rs.Close();
}
}
catch(CDBException*e)
{
e->ReportError();
e->Delete();
}
//插入输入(INSERTINTO)
try
{
CStringszCmd;
szCmd.Format(_T("INSERTINTO%s(ID,Name)VALUES('1234','test')"),
szTabName);
db.ExecuteSQL(szCmd);
}
catch(CDBException*e)
{
e->ReportError();
e->Delete();
}
//关闭数据库
db.Close();
}
}
catch(CDBException*e)
{
e->ReportError();
e->Delete();
}
} |