📄 apb.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"><HTML><HEAD> <TITLE>Teach Yourself SQL in 21 Days, Second Edition -- Appendix B -- Source Code Listings for the C++ Program Used on Day 14</TITLE></HEAD><BODY TEXT="#000000" BGCOLOR="#FFFFFF"><CENTER><H1><IMG SRC="../buttonart/sams.gif" WIDTH="171" HEIGHT="66" ALIGN="BOTTOM" BORDER="0"><BR><FONT COLOR="#000077">Teach Yourself SQL in 21 Days, Second Edition</FONT></H1></CENTER><CENTER><P><A HREF="../apa/apa.htm"><IMG SRC="../buttonart/previous.gif" WIDTH="128" HEIGHT="28"ALIGN="BOTTOM" ALT="Previous chapter" BORDER="0"></A><A HREF="../apc/apc.htm"><IMGSRC="../buttonart/next.gif" WIDTH="128" HEIGHT="28" ALIGN="BOTTOM" ALT="Next chapter"BORDER="0"></A><A HREF="../index.htm"><IMG SRC="../buttonart/contents.gif" WIDTH="128"HEIGHT="28" ALIGN="BOTTOM" ALT="Contents" BORDER="0"></A> <HR></CENTER><CENTER><H1><FONT COLOR="#000077">- Appendix B -<BR>Source Code Listings for the C++ Program Used on Day 14</FONT></H1></CENTER><PRE><FONT COLOR="#0066FF">// tyssqvw.h : interface of the CTyssqlView class///////////////////////////////////////////////////////////////////////////////class CTyssqlSet;class CTyssqlView : public CRecordView{protected: // create from serialization only CTyssqlView(); DECLARE_DYNCREATE(CTyssqlView)public: //{{AFX_DATA(CTyssqlView) enum { IDD = IDD_TYSSQL_FORM }; CTyssqlSet* m_pSet; //}}AFX_DATA// Attributespublic: CTyssqlDoc* GetDocument();// Operationspublic: virtual CRecordset* OnGetRecordset();// Implementationpublic: virtual ~CTyssqlView();#ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const;#endifprotected: virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV support virtual void OnInitialUpdate(); // called first time after construct// Generated message map functionsprotected: //{{AFX_MSG(CTyssqlView) // 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()};#ifndef _DEBUG // debug version in tyssqvw.cppinline CTyssqlDoc* CTyssqlView::GetDocument() { return (CTyssqlDoc*)m_pDocument; }#endif/////////////////////////////////////////////////////////////////////////////// tyssql.h : main header file for the TYSSQL application//#ifndef __AFXWIN_H__ #error include 'stdafx.h' before including this file for PCH#endif#include "resource.h" // main symbols/////////////////////////////////////////////////////////////////////////////// CTyssqlApp:// See tyssql.cpp for the implementation of this class//class CTyssqlApp : public CWinApp{public: CTyssqlApp();// Overrides virtual BOOL InitInstance();// Implementation //{{AFX_MSG(CTyssqlApp) afx_msg void OnAppAbout(); // 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()};/////////////////////////////////////////////////////////////////////////////// tyssqset.h : interface of the CTyssqlSet class///////////////////////////////////////////////////////////////////////////////class CTyssqlSet : public CRecordset{DECLARE_DYNAMIC(CTyssqlSet)public: CTyssqlSet(CDatabase* pDatabase = NULL);// Field/Param Data //{{AFX_FIELD(CTyssqlSet, CRecordset) CString m_NAME; CString m_ADDRESS; CString m_STATE; CString m_ZIP; CString m_PHONE; CString m_REMARKS; //}}AFX_FIELD// Implementationprotected: virtual CString GetDefaultConnect(); // Default connection string virtual CString GetDefaultSQL(); // default SQL for Recordset virtual void DoFieldExchange(CFieldExchange* pFX); // RFX support};// tyssqdoc.h : interface of the CTyssqlDoc class///////////////////////////////////////////////////////////////////////////////class CTyssqlDoc : public CDocument{protected: // create from serialization only CTyssqlDoc(); DECLARE_DYNCREATE(CTyssqlDoc)// Attributespublic: CTyssqlSet m_tyssqlSet;// Operationspublic:// Implementationpublic: virtual ~CTyssqlDoc();#ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const;#endifprotected: virtual BOOL OnNewDocument();// Generated message map functionsprotected: //{{AFX_MSG(CTyssqlDoc) // 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()};/////////////////////////////////////////////////////////////////////////////// stdafx.h : include file for standard system include files,// or project specific include files that are used frequently, but// are changed infrequently//#include <afxwin.h> // MFC core and standard components#include <afxext.h> // MFC extensions (including VB)#include <afxdb.h> // MFC database classes//////////////////////////////////////////////////////////////{{NO_DEPENDENCIES}}// App Studio generated include file.// Used by TYSSQL.RC//#define IDR_MAINFRAME 2#define IDD_ABOUTBOX 100#define IDD_TYSSQL_FORM 101#define IDP_FAILED_OPEN_DATABASE 103#define IDC_NAME 1000#define IDC_ADDRESS 1001#define IDC_STATE 1002#define IDC_ZIP 1003// Next default values for new objects//#ifdef APSTUDIO_INVOKED#ifndef APSTUDIO_READONLY_SYMBOLS#define _APS_NEXT_RESOURCE_VALUE 102#define _APS_NEXT_COMMAND_VALUE 32771#define _APS_NEXT_CONTROL_VALUE 1004#define _APS_NEXT_SYMED_VALUE 101#endif#endif///////////////////////////////////////////////////</FONT></PRE><PRE><FONT COLOR="#0066FF">// mainfrm.h : interface of the CMainFrame class///////////////////////////////////////////////////////////////////////////////class CMainFrame : public CFrameWnd{protected: // create from serialization only CMainFrame(); DECLARE_DYNCREATE(CMainFrame)// Attributespublic:// Operationspublic:// Implementationpublic: virtual ~CMainFrame();#ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const;#endifprotected: // control bar embedded members CStatusBar m_wndStatusBar; CToolBar m_wndToolBar;// Generated message map functionsprotected: //{{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_FILEstatic char BASED_CODE THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// CTyssqlViewIMPLEMENT_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_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// CTyssqlView construction/destructionCTyssqlView::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 _DEBUGvoid CTyssqlView::AssertValid() const{ 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 supportCRecordset* 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 implementationIMPLEMENT_DYNAMIC(CTyssqlSet, CRecordset)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -