按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
#define _APS_NEXT_MAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1004
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
///////////////////////////////////////////////////
// mainfrm。h : interface of the CMainFrame class
//
/////////////////////////////////////////////////////////////////////////////
class CMainFrame : public CFrameWnd
{
protected: // create from serialization only
CMainFrame();
DECLARE_DYNCREATE(CMainFrame)
// Attributes
public:
// Operations
public:
// Implementation
public:
virtual ~CMainFrame();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected: // control bar embedded members
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
// Generated message map functions
protected:
509
…………………………………………………………Page 510……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
//{{AFX_MSG(CMainFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
// NOTE the ClassWizard will add and remove member functions here。
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
// tyssqvw。cpp : implementation of the CTyssqlView class
//
#include 〃stdafx。h〃
#include 〃tyssql。h〃
#include 〃tyssqset。h〃
#include 〃tyssqdoc。h〃
#include 〃tyssqvw。h〃
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE'' = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTyssqlView
IMPLEMENT_DYNCREATE(CTyssqlView; CRecordView)
BEGIN_MESSAGE_MAP(CTyssqlView; CRecordView)
//{{AFX_MSG_MAP(CTyssqlView)
// NOTE the ClassWizard will add and remove mapping macros here。
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTyssqlView construction/destruction
510
…………………………………………………………Page 511……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
CTyssqlView::CTyssqlView()
: CRecordView(CTyssqlView::IDD)
{
//{{AFX_DATA_INIT(CTyssqlView)
m_pSet = NULL;
//}}AFX_DATA_INIT
// TODO: add construction code here
}
CTyssqlView::~CTyssqlView()
{
}
void CTyssqlView::DoDataExchange(CDataExchange* pDX)
{
CRecordView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTyssqlView)
DDX_FieldText(pDX; IDC_ADDRESS; m_pSet…》m_ADDRESS; m_pSet);
DDX_FieldText(pDX; IDC_NAME; m_pSet…》m_NAME; m_pSet);
DDX_FieldText(pDX; IDC_STATE; m_pSet…》m_STATE; m_pSet);
DDX_FieldText(pDX; IDC_ZIP; m_pSet…》m_ZIP; m_pSet);
//}}AFX_DATA_MAP
}
void CTyssqlView::OnInitialUpdate()
{
m_pSet = &GetDocument()…》m_tyssqlSet;
CRecordView::OnInitialUpdate();
}
/////////////////////////////////////////////////////////////////////////////
// CTyssqlView diagnostics
#ifdef _DEBUG
void CTyssqlView::AssertValid() const
511
…………………………………………………………Page 512……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
{
CRecordView::AssertValid();
}
void CTyssqlView::Dump(CDumpContext& dc) const
{
CRecordView::Dump(dc);
}
CTyssqlDoc* CTyssqlView::GetDocument() // non…debug version is inline
{
ASSERT(m_pDocument…》IsKindOf(RUNTIME_CLASS(CTyssqlDoc)));
return (CTyssqlDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CTyssqlView database support
CRecordset* CTyssqlView::OnGetRecordset()
{
return m_pSet;
}
/////////////////////////////////////////////////////////////////////////////
// CTyssqlView message handlers
// tyssqset。cpp : implementation of the CTyssqlSet class
//
#include 〃stdafx。h〃
#include 〃tyssql。h〃
#include 〃tyssqset。h〃
/////////////////////////////////////////////////////////////////////////////
// CTyssqlSet implementation
IMPLEMENT_DYNAMIC(CTyssqlSet; CRecordset)
CTyssqlSet::CTyssqlSet(CDatabase* pdb)
512
…………………………………………………………Page 513……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
: CRecordset(pdb)
{
//{{AFX_FIELD_INIT(CTyssqlSet)
m_NAME = 〃〃;
m_ADDRESS = 〃〃;
m_STATE = 〃〃;
m_ZIP = 〃〃;
m_PHONE = 〃〃;
m_REMARKS = 〃〃;
m_nFields = 6;
//}}AFX_FIELD_INIT
}
CString CTyssqlSet::GetDefaultConnect()
{
return 〃ODBC;DSN=TYSSQL;〃;
}
CString CTyssqlSet::GetDefaultSQL()
{
return 〃SELECT * FROM CUSTOMER ORDER BY NAME〃;
}
void CTyssqlSet::DoFieldExchange(CFieldExchange* pFX)
{
//{{AFX_FIELD_MAP(CTyssqlSet)
pFX…》SetFieldType(CFieldExchange::outputColumn);
RFX_Text(pFX; 〃NAME〃; m_NAME);
RFX_Text(pFX; 〃ADDRESS〃; m_ADDRESS);
RFX_Text(pFX; 〃STATE〃; m_STATE);
RFX_Text(pFX; 〃ZIP〃; m_ZIP);
RFX_Text(pFX; 〃PHONE〃; m_PHONE);
RFX_Text(pFX; 〃REMARKS〃; m_REMARKS);
513
…………………………………………………………Page 514……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
//}}AFX_FIELD_MAP
}
// tyssql。cpp : Defines the class behaviors for the application。
//
#include 〃stdafx。h〃
#include 〃tyssql。h〃
#include 〃mainfrm。h〃
#include 〃tyssqset。h〃
#include 〃tyssqdoc。h〃
#include 〃tyssqvw。h〃
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE'' = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTyssqlApp
BEGIN_MESSAGE_MAP(CTyssqlApp; CWinApp)
//{{AFX_MSG_MAP(CTyssqlApp)
ON_MAND(ID_APP_ABOUT; OnAppAbout)
// NOTE the ClassWizard will add and