#include<afxdb.h>
CDatabase m_DB;
bool CBaselineSubsystemDialog::InitDBConnect()
{
CString strFileName = CGlobalConfig::GetConfigString("porte_db_filepath", "");
const int BuffLen = 4096;
CHAR buff[BuffLen];
WORD wLen;
CString strDBDriver;
if (!SQLGetInstalledDrivers(buff, BuffLen-1, &wLen)) {
DWORD dwSQLErrCode;
CHAR msgBuff[SQL_MAX_MESSAGE_LENGTH];
WORD wLen;
if (SQLInstallerError(1, &dwSQLErrCode, msgBuff, SQL_MAX_MESSAGE_LENGTH-1, &wLen) != SQL_NO_DATA) {
CString szMsg(msgBuff);
TRACE(szMsg);
}
else {
CString szMsg("ODBC couldn't get installed SQL drivers info.\n");
TRACE(szMsg);
}
return false;
}
//std::vector< CString > DriversVec;
std::vector< CString > AccessDriversVec;
char *pCh = static_cast< char * > (buff);
while ((pCh[0]!=0) && (pCh[1]!=0)) {
//DriversVec.push_back(CString(pCh));
if (strDBDriver.IsEmpty() && strstr(pCh, "Access")) {
AccessDriversVec.push_back(CString(pCh));
}
pCh += strlen(pCh)+1;
}
if (AccessDriversVec.size() < 1) {
CString szMsg("No ODBC Access drivers are installed.\n");
TRACE(szMsg);
return false;
}
bool bConnected = false;
for (std::vector< CString >::const_iterator it=AccessDriversVec.begin(); it!=AccessDriversVec.end(); ++it) {
CString strDSN = FormatString("ODBC;DRIVER={%s};DSN='';DBQ=%s", *it, strFileName);
try {
if(m_DB.Open(strDSN, FALSE, FALSE, strDSN)) {
bConnected = true;
break;
}
}
catch (CDBException *e) {
#ifdef _DEBUG
e->ReportError();
#endif
e->Delete();
bConnected = false;
}
}
return bConnected;
}
CString strSQL;
CRecordset rs(&m_DB);
strSQL="SELECT * FROM tblSystemDetails";
rs.Open(CRecordset::forwardOnly, strSQL, CRecordset::readOnly);
if (rs.GetRecordCount()!=0)
{
rs.GetFieldValue("strBatteryChemistry",m_BatteryChemistry);
rs.GetFieldValue("intCameraRez",m_MCResolution);
rs.GetFieldValue("intCameraZoom",m_MCOpticalZoom);
rs.GetFieldValue("intSecCameraRez",m_SCResolution);
rs.GetFieldValue("intSecCameraZoom",m_SCOpticalZoom);
rs.GetFieldValue("intDisplayRows",m_MDRows);
rs.GetFieldValue("intDisplayCols",m_MDColumns);
rs.GetFieldValue("strDisplayType",m_MDType);
rs.GetFieldValue("intDisplayColors",m_MDColors);
rs.GetFieldValue("sngDisplayDiagonal",m_MDDiagonal);
rs.GetFieldValue("intSecDisplayRows",m_SDRows);
rs.GetFieldValue("intSecDisplayCols",m_SDColumns);
rs.GetFieldValue("strSecDisplayType",m_SDType);
rs.GetFieldValue("intSecDisplayColors",m_SDColors);
rs.GetFieldValue("sngSecDisplayDiagonal",m_SDDiagonal);
}
rs.Close();