#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();

 

posted on 2012-07-17 17:40  MarvinGeng  阅读(400)  评论(0编辑  收藏  举报