topical media & game development

talk show tell print

basic-program-code-20-DBSimpleUpdate-DBSimpleUpdateDoc.c

? / basic-program-code-20-DBSimpleUpdate-DBSimpleUpdateDoc.c


  // DBSimpleUpdateDoc.cpp : implementation of the CDBSimpleUpdateDoc class
  //
  
  include <stdafx.h>
  include <DBSimpleUpdate.h>
  
  include <OrderDetailsSet.h>
  include <DBSimpleUpdateDoc.h>
  
  ifdef _DEBUG
  define new DEBUG_NEW
  endif
  
  // CDBSimpleUpdateDoc
  
  IMPLEMENT_DYNCREATE(CDBSimpleUpdateDoc, CDocument)
  
  BEGIN_MESSAGE_MAP(CDBSimpleUpdateDoc, CDocument)
  END_MESSAGE_MAP()
  
  // CDBSimpleUpdateDoc construction/destruction
  
  CDBSimpleUpdateDoc::CDBSimpleUpdateDoc()
  {
          // TODO: add one-time construction code here
  
  }
  
  CDBSimpleUpdateDoc::~CDBSimpleUpdateDoc()
  {
  }
  
  BOOL CDBSimpleUpdateDoc::OnNewDocument()
  {
          if (!CDocument::OnNewDocument())
                  return FALSE;
  
          // TODO: add reinitialization code here
          // (SDI documents will reuse this document)
  
          return TRUE;
  }
  
  // CDBSimpleUpdateDoc diagnostics
  
  ifdef _DEBUG
  void CDBSimpleUpdateDoc::AssertValid() const
  {
          CDocument::AssertValid();
  }
  
  void CDBSimpleUpdateDoc::Dump(CDumpContext& dc) const
  {
          CDocument::Dump(dc);
  }
  endif //_DEBUG
  
  // CDBSimpleUpdateDoc commands
  
  bool CDBSimpleUpdateDoc::AddOrder(void)
  {
    try
    {
      if(!m_OrderSet.IsOpen())                     // If recordset is not open
          m_OrderSet.Open();                       // open it
  
        if(m_OrderSet.CanAppend())                 // If we can add a record
        {                                          // then add it
          m_OrderSet.AddNew();                     // Start adding new record
          m_OrderSet.m_CustomerID = m_Order.m_CustomerID;
          m_OrderSet.m_EmployeeID = m_Order.m_EmployeeID;
          m_OrderSet.m_Freight = m_Order.m_Freight;
          m_OrderSet.m_OrderDate = m_Order.m_OrderDate;
          m_OrderSet.m_OrderID = m_Order.m_OrderID;
          m_OrderSet.m_RequiredDate = m_Order.m_RequiredDate;
          m_OrderSet.m_ShipAddress = m_Order.m_ShipAddress;
          m_OrderSet.m_ShipName = m_Order.m_ShipName;
          m_OrderSet.m_ShipPostalCode = m_Order.m_ShipPostalCode;
          m_OrderSet.m_ShipRegion = m_Order.m_ShipRegion;
          m_OrderSet.m_ShipVia = m_Order.m_ShipVia;
  
          // No value for the Shipped Date field
          m_OrderSet.SetFieldNull(&m_OrderSet.m_ShippedDate);
  
          m_OrderSet.Update();                     // Complete adding new record
          return true;                             // Return success
        }
        else
          AfxMessageBox(_T("Cannot append to Orders table"));
    }
    catch(CException* pEx)                         // Catch any exceptions
    {
      pEx->ReportError();                          // Display the error message
    }
    return false;                                  // Here we have failed
  }
  
  void CDBSimpleUpdateDoc::AddOrderDetails(long ID, double price, int quantity, float discount)
  {
    try
    {
      if(!m_DBSimpleUpdateSet.IsOpen())              // If recordset is not open
        m_DBSimpleUpdateSet.Open();                  // open it
  
      m_DBSimpleUpdateSet.AddNew();                  // Start adding new record
  
      // Set Product Details recordset data member values 
      m_DBSimpleUpdateSet.m_OrderID = m_Order.m_OrderID;
      m_DBSimpleUpdateSet.m_Quantity = quantity; 
      m_DBSimpleUpdateSet.m_Discount = discount;
      m_DBSimpleUpdateSet.m_ProductID = ID;
      m_DBSimpleUpdateSet.m_UnitPrice = price;
      m_DBSimpleUpdateSet.Update();                  // Complete adding new record
    }
    catch(CException* pEx)                         // Catch any exceptions
    {
      pEx->ReportError();                          // Display the error message
    }
  }
  


(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.