topical media & game development

talk show tell print

basic-program-solutions-20-Ch20-Soln-1-OrderSet.c

? / basic-program-solutions-20-Ch20-Soln-1-OrderSet.c


  // OrderSet.h : Implementation of the COrderSet class
  
  // COrderSet implementation
  
  // code generated on 9 October 2005, 19:24
  
  include <stdafx.h>
  include <OrderSet.h>
  IMPLEMENT_DYNAMIC(COrderSet, CRecordset)
  
  COrderSet::COrderSet(CDatabase* pdb)
          : CRecordset(pdb)
  {
          m_OrderID = 0;
          m_CustomerID = L"";
          m_EmployeeID = 0;
          m_OrderDate;
          m_RequiredDate;
          m_ShippedDate;
          m_ShipVia = 0;
          m_Freight = 0.0;
          m_ShipName = L"";
          m_ShipAddress = L"";
          m_ShipCity = L"";
          m_ShipRegion = L"";
          m_ShipPostalCode = L"";
          m_ShipCountry = L"";
          m_nFields = 14;
          m_nDefaultType = dynaset;
  }
  //#error Security Issue: The connection string may contain a password
  // The connection string below may contain plain text passwords and/or
  // other sensitive information. Please remove the #error after reviewing
  // the connection string for any security related issues. You may want to
  // store the password in some other form or use a different user authentication.
  CString COrderSet::GetDefaultConnect()
  {
          return _T("DSN=Northwind;DBQ=D:\\Beginning Visual C++ 2005\\Model Access DB\\Northwind.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;");
  }
  
  CString COrderSet::GetDefaultSQL()
  {
          return _T("[Orders]");
  }
  
  void COrderSet::DoFieldExchange(CFieldExchange* pFX)
  {
          pFX->SetFieldType(CFieldExchange::outputColumn);
  // Macros such as RFX_Text() and RFX_Int() are dependent on the
  // type of the member variable, not the type of the field in the database.
  // ODBC will try to automatically convert the column value to the requested type
          RFX_Long(pFX, _T("[OrderID]"), m_OrderID);
          RFX_Text(pFX, _T("[CustomerID]"), m_CustomerID);
          RFX_Long(pFX, _T("[EmployeeID]"), m_EmployeeID);
          RFX_Date(pFX, _T("[OrderDate]"), m_OrderDate);
          RFX_Date(pFX, _T("[RequiredDate]"), m_RequiredDate);
          RFX_Date(pFX, _T("[ShippedDate]"), m_ShippedDate);
          RFX_Long(pFX, _T("[ShipVia]"), m_ShipVia);
          RFX_Double(pFX, _T("[Freight]"), m_Freight);
          RFX_Text(pFX, _T("[ShipName]"), m_ShipName);
          RFX_Text(pFX, _T("[ShipAddress]"), m_ShipAddress);
          RFX_Text(pFX, _T("[ShipCity]"), m_ShipCity);
          RFX_Text(pFX, _T("[ShipRegion]"), m_ShipRegion);
          RFX_Text(pFX, _T("[ShipPostalCode]"), m_ShipPostalCode);
          RFX_Text(pFX, _T("[ShipCountry]"), m_ShipCountry);
  
  }
  
//////////////////////////////////////////////////////////////////////////

// COrderSet diagnostics ifdef _DEBUG void COrderSet::AssertValid() const { CRecordset::AssertValid(); } void COrderSet::Dump(CDumpContext& dc) const { CRecordset::Dump(dc); } endif //_DEBUG long COrderSet::CreateNewOrderID(void) { if(!IsOpen()) Open(CRecordset::dynaset); // Check for no records in recordset long newOrderID = 0; if(!(IsBOF() && IsEOF())) { // We have records MoveFirst(); // so go to the first while(!IsEOF()) // Compare with all the others { // Save order ID if its larger if(newOrderID < m_OrderID) newOrderID = m_OrderID; MoveNext(); // Go to next record } } return ++newOrderID; }


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.