#pragma once
class CAccseeDB
{
public:
CAccseeDB(void);
~CAccseeDB(void);
void ExecuteSQL(CString strSQL);
void Query(CString strSQL, CRecordset* prs);
CDBVariant QueryOne(CString strSQL);
protected:
CDatabase m_db;
};
#include "StdAfx.h"
#include "AccseeDB.h"
CAccseeDB::CAccseeDB(void)
{
CString strDriver = "MICROSOFT ACCESS DRIVER (*.mdb)";
CString strDSN;
strDSN.Format("ODBC;DRIVER={%s};UID=;PWD=;DBQ=H://db1.mdb", strDriver);
m_db.Open(NULL,0,0,strDSN);
}
CAccseeDB::~CAccseeDB(void)
{
m_db.Close();
}
void CAccseeDB::ExecuteSQL(CString strSQL)
{
m_db.ExecuteSQL(strSQL);
}
void CAccseeDB::Query(CString strSQL, CRecordset* prs)
{
prs->m_pDatabase = &m_db;
prs->Open(CRecordset::forwardOnly, strSQL);
}
CDBVariant CAccseeDB::QueryOne(CString strSQL)
{
CDBVariant var;
CRecordset rs;
Query(strSQL, &rs);
if(!rs.IsBOF())
{
rs.GetFieldValue((short)0,var);
rs.Close();
}
return var;
}
try
{
}
catch(CDBException e)
{
AfxMessageBox("Database Error:" + e.m_strError);
}