⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rscgdlg.h

📁 ado连接源代码~包括ado和adox的所有基本使用
💻 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 + -