📄 rscgdlg.h
字号:
#ifndef _RsCgDlg_H_
#define _RsCgDlg_H_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include "resource.h"
// CG : In order to use this code against a different version of ADO, the appropriate
// ADO library needs to be used in the #import statement
#import "C:\Program Files\Common Files\system\ado\msado15.dll" rename_namespace("ADOCG") rename("EOF", "EndOfFile")
using namespace ADOCG;
#include "icrsint.h"
// RsCgDlg.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// CCustomRs class
class CCustomRs :
public CADORecordBinding
{
BEGIN_ADO_BINDING(CCustomRs)
//ADO_FIXED_LENGTH_ENTRY(1, adInteger, m_lProductID, lProductIDStatus, TRUE)
ADO_VARIABLE_LENGTH_ENTRY2(1, adVarChar, m_szProductName, sizeof(m_szProductName), lProductNameStatus, TRUE)
ADO_VARIABLE_LENGTH_ENTRY2(2, adVarChar, m_szQuantityPerUnit, sizeof(m_szQuantityPerUnit), lQuantityPerUnitStatus, TRUE)
//ADO_FIXED_LENGTH_ENTRY(4, adDouble, m_dUnitPrice, lUnitPriceStatus, TRUE)
//ADO_FIXED_LENGTH_ENTRY(5, adSmallInt, m_sUnitsInStock, lUnitsInStockStatus, TRUE)
//ADO_FIXED_LENGTH_ENTRY(6, adSmallInt, m_sUnitsOnOrder, lUnitsOnOrderStatus, TRUE)
//ADO_FIXED_LENGTH_ENTRY(7, adSmallInt, m_sReorderLevel, lReorderLevelStatus, TRUE)
END_ADO_BINDING()
protected:
//LONG m_lProductID;
//ULONG lProductIDStatus;
CHAR m_szProductName[41];
ULONG lProductNameStatus;
CHAR m_szQuantityPerUnit[21];
ULONG lQuantityPerUnitStatus;
//DOUBLE m_dUnitPrice;
//ULONG lUnitPriceStatus;
//SHORT m_sUnitsInStock;
//ULONG lUnitsInStockStatus;
//SHORT m_sUnitsOnOrder;
//ULONG lUnitsOnOrderStatus;
//SHORT m_sReorderLevel;
//ULONG lReorderLevelStatus;
};
//
// TODO : These definitions should be moved to the resource header.
//
#define ID_BTN_MOVEPREVIOUS 201
#define ID_BTN_MOVENEXT 202
#define ID_BTN_MOVELAST 203
#define ID_BTN_MOVEFIRST 204
#define IDC_STATIC_PRODUCTID 1001
#define IDC_EDIT_PRODUCTID 2001
#define IDC_STATIC_PRODUCTNAME 1002
#define IDC_EDIT_PRODUCTNAME 2002
#define IDC_STATIC_QUANTITYPERUNIT 1003
#define IDC_EDIT_QUANTITYPERUNIT 2003
#define IDC_STATIC_UNITPRICE 1004
#define IDC_EDIT_UNITPRICE 2004
#define IDC_STATIC_UNITSINSTOCK 1005
#define IDC_EDIT_UNITSINSTOCK 2005
#define IDC_STATIC_UNITSONORDER 1006
#define IDC_EDIT_UNITSONORDER 2006
#define IDC_STATIC_REORDERLEVEL 1007
#define IDC_EDIT_REORDERLEVEL 2007
/////////////////////////////////////////////////////////////////////////////
// CRsCgDlg dialog
class CRsCgDlg :
public CDialog,
public CCustomRs
{
// Construction
public:
CRsCgDlg(CWnd* pParent = NULL);
~CRsCgDlg();
BOOL OnInitDialog();
// Dialog Data
//{{AFX_DATA(CRsCgDlg)
enum { IDD = CG_IDD_RECORDSET };
//LONG m_lDlgProductID;
CString m_strDlgProductName;
CString m_strDlgQuantityPerUnit;
//DOUBLE m_dDlgUnitPrice;
//SHORT m_sDlgUnitsInStock;
//SHORT m_sDlgUnitsOnOrder;
//SHORT m_sDlgReorderLevel;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CRsCgDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
void RefreshBoundData();
void GenerateError(HRESULT hr, PWSTR pwszDescription);
_RecordsetPtr m_pRs;
// Cached IADORecordBinding pointer.
IADORecordBinding *m_piAdoRecordBinding;
CString m_strConnection;
CString m_strCmdText;
// Helper functions for saving and updating records.
BOOL IsDirty();
void PrepareBoundData();
void SaveRecord();
void AddRecord();
// Debugging functions
void TraceFieldStatus();
void TraceADOErrors();
// Generated message map functions
//{{AFX_MSG(CRsCgDlg)
afx_msg void OnBtnMoveFirst();
afx_msg void OnBtnMoveLast();
afx_msg void OnBtnMoveNext();
afx_msg void OnBtnMovePrevious();
afx_msg void OnSaveRecord();
afx_msg void OnAddRecord();
afx_msg void OnDeleteRecord();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif // !_RsCgDlg_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -