CDatabase

void CReadDBDlg::OnRead()
 {
 int iRecord = 0;
 sDsn.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s",sDriver,sFile);
 TRY
 {
  database.Open(NULL,false ,false ,sDsn);
  CRecordset recset( &database );
  sSql = "SELECT CatID, Category " "FROM Categories";
  recset.Open(CRecordset::forwardOnly,sSql,CRecordset::readOnly);
  ResetListControl();
  m_ListControl.InsertColumn(1,"Cat ID",LVCFMT_LEFT,30,0);
  m_ListControl.InsertColumn(1,"Category",LVCFMT_LEFT,30,1);
  while ( !recset.IsEOF() )
  {
   recset.GetFieldValue("CatID",sCatID); recset.GetFieldValue("Category",sCategory); // Insert values into the list control
   m_ListControl.InsertItem(0,sCatID,0);
   m_ListControl.SetItemText(0,1,sCategory); // goto next record
   recset.MoveNext(); } // Close the database
   database.Close();
 }
 CATCH(CDBException, e)
 {
  AfxMessageBox("Database error: "+e->m_strError); }
 }

void CReadDBDlg::ResetListControl()
{
  m_ListControl.DeleteAllItems();
  int iNbrOfColumns;
  CHeaderCtrl* pHeader = (CHeaderCtrl*)m_ListControl.GetDlgItem(0);
  if (pHeader)
  {
   iNbrOfColumns = pHeader->GetItemCount();
  }
  for (int i = iNbrOfColumns; i >= 0; i--)
  {
   m_ListControl.DeleteColumn(i);
  }
}

你可能感兴趣的:(CDatabase)