home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / mfc / database / dynabind / sectset.cpp < prev    next >
C/C++ Source or Header  |  1998-03-26  |  3KB  |  106 lines

  1. // sectset.cpp : implementation of the CSectionSet class
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1998 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12.  
  13. #include "stdafx.h"
  14. #include "enroll.h"
  15. #include "sectset.h"
  16.  
  17. /////////////////////////////////////////////////////////////////////////////
  18. // CSectionSet implementation
  19.  
  20. IMPLEMENT_DYNAMIC(CSectionSet, CRecordset)
  21.  
  22. CSectionSet::CSectionSet(CDatabase* pdb)
  23.     : CRecordset(pdb)
  24. {
  25.     //{{AFX_FIELD_INIT(CSectionSet)
  26.     m_CourseID = "";
  27.     m_SectionNo = "";
  28.     m_InstructorID = "";
  29.     m_RoomNo = "";
  30.     m_Schedule = "";
  31.     m_Capacity = 0;
  32.     m_nFields = 6;
  33.     //}}AFX_FIELD_INIT
  34.     m_nParams = 1;
  35.     m_strCourseIDParam = "";
  36.  
  37.     m_nDefaultType = dynaset;
  38. }
  39.  
  40. CSectionSet::~CSectionSet()
  41. {
  42.     // delete list of dynamically added columns
  43.     while (!m_listName.IsEmpty())
  44.     {
  45.         m_listName.RemoveHead();
  46.         m_listValue.RemoveHead();
  47.     }
  48. }
  49.  
  50. CString CSectionSet::GetDefaultConnect()
  51. {
  52.     return "ODBC;DSN=Student Registration;";
  53. }
  54.  
  55. CString CSectionSet::GetDefaultSQL()
  56. {
  57.     return "DYNABIND_SECTION";
  58. }
  59.  
  60. void CSectionSet::DoFieldExchange(CFieldExchange* pFX)
  61. {
  62.     //{{AFX_FIELD_MAP(CSectionSet)
  63.     pFX->SetFieldType(CFieldExchange::outputColumn);
  64.     RFX_Text(pFX, "CourseID", m_CourseID);
  65.     RFX_Text(pFX, "SectionNo", m_SectionNo);
  66.     RFX_Text(pFX, "InstructorID", m_InstructorID);
  67.     RFX_Text(pFX, "RoomNo", m_RoomNo);
  68.     RFX_Text(pFX, "Schedule", m_Schedule);
  69.     RFX_Int(pFX, "Capacity", m_Capacity);
  70.     //}}AFX_FIELD_MAP
  71.     pFX->SetFieldType(CFieldExchange::param);
  72.     RFX_Text(pFX, "CourseIDParam", m_strCourseIDParam);
  73.  
  74.     // Register dynamically added fields
  75.     pFX->SetFieldType(CFieldExchange::outputColumn);
  76.     POSITION posName = m_listName.GetHeadPosition();
  77.     POSITION posValue = m_listValue.GetHeadPosition();
  78.     while (posName != NULL)
  79.     {
  80.         RFX_Text(pFX, m_listName.GetNext(posName),
  81.             m_listValue.GetNext(posValue));
  82.     }
  83. }
  84.  
  85.  
  86. void CSectionSet::AddTextField(CString& strName)
  87. {
  88.     m_listValue.AddTail("");
  89.     m_listName.AddTail(strName);
  90.     m_nFields++;
  91. }
  92.  
  93. BOOL CSectionSet::FindField(const char* szName)
  94. {
  95.     for (UINT nField = 0; nField != m_nFields; nField++)
  96.     {
  97.         CODBCFieldInfo fi;
  98.  
  99.         GetODBCFieldInfo(nField, fi);
  100.         if (fi.m_strName.Compare(szName) == 0)
  101.             return TRUE;
  102.     }
  103.  
  104.     return FALSE;
  105. }
  106.