vorheriges KapitelInhaltsverzeichnisIndexInfoseitenächstes Kapitel



B


Quellcode für C++-Programm in Tag 14

Die Datei MainFrm.cpp

Die Datei MainFrm.h

Die Datei resource.h

Die Datei SQL21.cpp

Die Datei SQL21.h

Die Datei SQL21Doc.cpp

Die Datei SQL21Doc.h

Die Datei SQL21Set.cpp

Die Datei SQL21Set.h

Die Datei SQL21View.cpp

Die Datei SQL21View.h

Die Datei StdAfx.cpp

Die Datei StdAfx.h



Die Datei MainFrm.cpp

// MainFrm.h : Schnittstelle der Klasse CMainFrame
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_MAINFRM_H__1C3BFD87_6C1D_11D1_866A_EB762E5B5709__INCLUDED_)
#define AFX_MAINFRM_H__1C3BFD87_6C1D_11D1_866A_EB762E5B5709__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

class CMainFrame : public CFrameWnd
{
protected: // Nur aus Serialisierung erzeugen
CMainFrame();
DECLARE_DYNCREATE(CMainFrame)

// Attribute
public:

// Operationen
public:

// Überladungen
// Vom Klassenassistenten generierte Überladungen virtueller Funktionen
//{{AFX_VIRTUAL(CMainFrame)
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
//}}AFX_VIRTUAL

// Implementierung
public:
virtual ~CMainFrame();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif

protected: // Eingebundene Elemente der Steuerleiste
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;

// Generierte Message-Map-Funktionen
protected:
//{{AFX_MSG(CMainFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
// HINWEIS - An dieser Stelle werden Member-Funktionen vom Klassen-Assistenten eingefügt und entfernt.
// Innerhalb dieser generierten Quelltextabschnitte NICHTS VERÄNDERN!
//}}AFX_MsgBox
DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio fügt zusätzliche Deklarationen unmittelbar vor der vorhergehenden Zeile ein.

#endif // !defined(AFX_MAINFRM_H__1C3BFD87_6C1D_11D1_866A_EB762E5B5709__INCLUDED_)



Die Datei MainFrm.h

// MainFrm.h : Schnittstelle der Klasse CMainFrame
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_MAINFRM_H__1C3BFD87_6C1D_11D1_866A_EB762E5B5709__INCLUDED_)
#define AFX_MAINFRM_H__1C3BFD87_6C1D_11D1_866A_EB762E5B5709__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

class CMainFrame : public CFrameWnd
{
protected: // Nur aus Serialisierung erzeugen
CMainFrame();
DECLARE_DYNCREATE(CMainFrame)

// Attribute
public:

// Operationen
public:

// Überladungen
// Vom Klassenassistenten generierte Überladungen virtueller Funktionen
//{{AFX_VIRTUAL(CMainFrame)
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
//}}AFX_VIRTUAL

// Implementierung
public:
virtual ~CMainFrame();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif

protected: // Eingebundene Elemente der Steuerleiste
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;

// Generierte Message-Map-Funktionen
protected:
//{{AFX_MSG(CMainFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
// HINWEIS - An dieser Stelle werden Member-Funktionen vom Klassen-Assistenten eingefügt und entfernt.
// Innerhalb dieser generierten Quelltextabschnitte NICHTS VERÄNDERN!
//}}AFX_MsgBox
DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio fügt zusätzliche Deklarationen unmittelbar vor der vorhergehenden Zeile ein.

#endif // !defined(AFX_MAINFRM_H__1C3BFD87_6C1D_11D1_866A_EB762E5B5709__INCLUDED_)



Die Datei resource.h

//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by SQL21.rc
//
#define IDD_ABOUTBOX 100
#define IDD_SQL21_FORM 101
#define IDP_FAILED_OPEN_DATABASE 103
#define IDR_MAINFRAME 128
#define IDR_SQL21TYPE 129
#define IDC_NAME 1000
#define IDC_ADRESSE 1001
#define IDC_STAAT 1002
#define IDC_ZIP 1003

// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 130
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1004
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif



Die Datei SQL21.cpp

// SQL21.cpp : Legt das Klassenverhalten für die Anwendung fest.
//

#include "stdafx.h"
#include "SQL21.h"

#include "MainFrm.h"
#include "SQL21Set.h"
#include "SQL21Doc.h"
#include "SQL21View.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSQL21App

BEGIN_MESSAGE_MAP(CSQL21App, CWinApp)
//{{AFX_MSG_MAP(CSQL21App)
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
// HINWEIS - Hier werden Mapping-Makros vom Klassen-Assistenten eingefügt und entfernt.
// Innerhalb dieser generierten Quelltextabschnitte NICHTS VERÄNDERN!
//}}AFX_MSG_MAP
// Standard-Druckbefehl "Seite einrichten"
ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSQL21App Konstruktion

CSQL21App::CSQL21App()
{
// ZU ERLEDIGEN: Hier Code zur Konstruktion einfügen
// Alle wichtigen Initialisierungen in InitInstance platzieren
}

/////////////////////////////////////////////////////////////////////////////
// Das einzige CSQL21App-Objekt

CSQL21App theApp;

/////////////////////////////////////////////////////////////////////////////
// CSQL21App Initialisierung

BOOL CSQL21App::InitInstance()
{
AfxEnableControlContainer();

// Standardinitialisierung
// Wenn Sie diese Funktionen nicht nutzen und die Größe Ihrer fertigen
// ausführbaren Datei reduzieren wollen, sollten Sie die nachfolgenden
// spezifischen Initialisierungsroutinen, die Sie nicht benötigen, entfernen.

#ifdef _AFXDLL
Enable3dControls(); // Diese Funktion bei Verwendung von MFC in gemeinsam genutzten DLLs aufrufen
#else
Enable3dControlsStatic(); // Diese Funktion bei statischen MFC-Anbindungen aufrufen
#endif

// Ändern des Registrierungsschlüssels, unter dem unsere Einstellungen gespeichert sind.
// Sie sollten dieser Zeichenfolge einen geeigneten Inhalt geben
// wie z.B. den Namen Ihrer Firma oder Organisation.
SetRegistryKey(_T("Local AppWizard-Generated Applications"));

LoadStdProfileSettings(); // Standard-INI-Dateioptionen einlesen (einschließlich MRU)

// Dokumentvorlagen der Anwendung registrieren. Dokumentvorlagen
// dienen als Verbindung zwischen Dokumenten, Rahmenfenstern und Ansichten.

CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CSQL21Doc),
RUNTIME_CLASS(CMainFrame), // Haupt-SDI-Rahmenfenster
RUNTIME_CLASS(CSQL21View));
AddDocTemplate(pDocTemplate);

// Befehlszeile parsen, um zu prüfen auf Standard-Umgebungsbefehle DDE, Datei offen
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);

// Verteilung der in der Befehlszeile angegebenen Befehle
if (!ProcessShellCommand(cmdInfo))
return FALSE;

// Das einzige Fenster ist initialisiert und kann jetzt angezeigt und aktualisiert werden.
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();

return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg-Dialogfeld für Anwendungsbefehl "Info"

class CAboutDlg : public CDialog
{
public:
CAboutDlg();

// Dialogfelddaten
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA

// Vom Klassenassistenten generierte Überladungen virtueller Funktionen
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung
//}}AFX_VIRTUAL

// Implementierung
protected:
//{{AFX_MSG(CAboutDlg)
// Keine Nachrichten-Handler
//}}AFX_MsgBox
DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// Keine Nachrichten-Handler
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

// Anwendungsbefehl, um das Dialogfeld aufzurufen
void CSQL21App::OnAppAbout()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal();
}

/////////////////////////////////////////////////////////////////////////////
// CSQL21App-Befehle



Die Datei SQL21.h

// SQL21.h : Haupt-Header-Datei für die Anwendung SQL21
//

#if !defined(AFX_SQL21_H__1C3BFD83_6C1D_11D1_866A_EB762E5B5709__INCLUDED_)
#define AFX_SQL21_H__1C3BFD83_6C1D_11D1_866A_EB762E5B5709__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif

#include "resource.h" // Hauptsymbole

/////////////////////////////////////////////////////////////////////////////
// CSQL21App:
// Siehe SQL21.cpp für die Implementierung dieser Klasse
//

class CSQL21App : public CWinApp
{
public:
CSQL21App();

// Überladungen
// Vom Klassenassistenten generierte Überladungen virtueller Funktionen
//{{AFX_VIRTUAL(CSQL21App)
public:
virtual BOOL InitInstance();
//}}AFX_VIRTUAL

// Implementierung

//{{AFX_MSG(CSQL21App)
afx_msg void OnAppAbout();
// HINWEIS - An dieser Stelle werden Member-Funktionen vom Klassen-Assistenten eingefügt und entfernt.
// Innerhalb dieser generierten Quelltextabschnitte NICHTS VERÄNDERN!
//}}AFX_MsgBox
DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio fügt zusätzliche Deklarationen unmittelbar vor der vorhergehenden Zeile ein.

#endif // !defined(AFX_SQL21_H__1C3BFD83_6C1D_11D1_866A_EB762E5B5709__INCLUDED_)



Die Datei SQL21Doc.cpp

// SQL21Doc.cpp : Implementierung der Klasse CSQL21Doc
//

#include "stdafx.h"
#include "SQL21.h"

#include "SQL21Set.h"
#include "SQL21Doc.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSQL21Doc

IMPLEMENT_DYNCREATE(CSQL21Doc, CDocument)

BEGIN_MESSAGE_MAP(CSQL21Doc, CDocument)
//{{AFX_MSG_MAP(CSQL21Doc)
// HINWEIS - Hier werden Mapping-Makros vom Klassen-Assistenten eingefügt und entfernt.
// Innerhalb dieser generierten Quelltextabschnitte NICHTS VERÄNDERN!
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSQL21Doc Konstruktion/Destruktion

CSQL21Doc::CSQL21Doc()
{
// ZU ERLEDIGEN: Hier Code für One-Time-Konstruktion einfügen
}

CSQL21Doc::~CSQL21Doc()
{
}

BOOL CSQL21Doc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;

// ZU ERLEDIGEN: Hier Code zur Reinitialisierung einfügen
// (SDI-Dokumente verwenden dieses Dokument)

return TRUE;
}



/////////////////////////////////////////////////////////////////////////////
// CSQL21Doc Diagnose

#ifdef _DEBUG
void CSQL21Doc::AssertValid() const
{
CDocument::AssertValid();
}

void CSQL21Doc::Dump(CDumpContext& dc) const
{
CDocument::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CSQL21Doc Befehle



Die Datei SQL21Doc.h

// SQL21Doc.h : Schnittstelle der Klasse CSQL21Doc
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_SQL21DOC_H__1C3BFD89_6C1D_11D1_866A_EB762E5B5709__INCLUDED_)
#define AFX_SQL21DOC_H__1C3BFD89_6C1D_11D1_866A_EB762E5B5709__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000


class CSQL21Doc : public Cdocument
{
protected: // Nur aus Serialisierung erzeugen
CSQL21Doc();
DECLARE_DYNCREATE(CSQL21Doc)

// Attribute
public:
CSQL21Set m_sQL21Set;

// Operationen
public:

// Überladungen
// Vom Klassenassistenten generierte Überladungen virtueller Funktionen
//{{AFX_VIRTUAL(CSQL21Doc)
public:
virtual BOOL OnNewDocument();
//}}AFX_VIRTUAL

// Implementierung
public:
virtual ~CSQL21Doc();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generierte Message-Map-Funktionen
protected:
//{{AFX_MSG(CSQL21Doc)
// HINWEIS - An dieser Stelle werden Member-Funktionen vom Klassen-Assistenten eingefügt und entfernt.
// Innerhalb dieser generierten Quelltextabschnitte NICHTS VERÄNDERN!
//}}AFX_MsgBox
DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio fügt zusätzliche Deklarationen unmittelbar vor der vorhergehenden Zeile ein.

#endif
// !defined(AFX_SQL21DOC_H__1C3BFD89_6C1D_11D1_866A_EB762E5B5709__INCLUDED_)



Die Datei SQL21Set.cpp

// SQL21Set.cpp : Implementierung der Klasse CSQL21Set
//

#include "stdafx.h"
#include "SQL21.h"
#include "SQL21Set.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSQL21Set Implementierung

IMPLEMENT_DYNAMIC(CSQL21Set, CRecordset)

CSQL21Set::CSQL21Set(CDatabase* pdb)
: CRecordset(pdb)
{
//{{AFX_FIELD_INIT(CSQL21Set)
m_NAME = _T("");
m_ADRESSE = _T("");
m_STAAT = _T("");
m_ZIP = _T("");
m_TELEFON = _T("");
m_BEMERKUNGEN = _T("");
m_nFields = 6;
//}}AFX_FIELD_INIT
m_nDefaultType = snapshot;
}

CString CSQL21Set::GetDefaultConnect()
{
return _T("ODBC;DSN=SQL21");
}

CString CSQL21Set::GetDefaultSQL()
{
// vom Assistenten erzeugt:
// return _T("[KUNDE]");

// für sortierte Ausgabe geändert (siehe Text):
return _T("SELECT * FROM KUNDE ORDER BY NAME");
}

void CSQL21Set::DoFieldExchange(CFieldExchange* pFX)
{
//{{AFX_FIELD_MAP(CSQL21Set)
pFX->SetFieldType(CFieldExchange::outputColumn);
RFX_Text(pFX, _T("[NAME]"), m_NAME);
RFX_Text(pFX, _T("[ADRESSE]"), m_ADRESSE);
RFX_Text(pFX, _T("[STAAT]"), m_STAAT);
RFX_Text(pFX, _T("[ZIP]"), m_ZIP);
RFX_Text(pFX, _T("[TELEFON]"), m_TELEFON);
RFX_Text(pFX, _T("[BEMERKUNGEN]"), m_BEMERKUNGEN);
//}}AFX_FIELD_MAP
}

/////////////////////////////////////////////////////////////////////////////
// CSQL21Set Diagnose

#ifdef _DEBUG
void CSQL21Set::AssertValid() const
{
CRecordset::AssertValid();
}

void CSQL21Set::Dump(CDumpContext& dc) const
{
CRecordset::Dump(dc);
}
#endif //_DEBUG



Die Datei SQL21Set.h

// SQL21Set.h : Schnittstelle der Klasse CSQL21Set
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_SQL21SET_H__1C3BFD8D_6C1D_11D1_866A_EB762E5B5709__INCLUDED_)
#define AFX_SQL21SET_H__1C3BFD8D_6C1D_11D1_866A_EB762E5B5709__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
class CSQL21Set : public Crecordset
{
public:
CSQL21Set(CDatabase* pDatabase = NULL);
DECLARE_DYNAMIC(CSQL21Set)

// Feld-/Parameterdaten
//{{AFX_FIELD(CSQL21Set, CRecordset)
CString m_NAME;
CString m_ADRESSE;
CString m_STAAT;
CString m_ZIP;
CString m_TELEFON;
CString m_BEMERKUNGEN;
//}}AFX_FIELD

// Überladungen
// Vom Klassenassistenten generierte Überladungen virtueller Funktionen
//{{AFX_VIRTUAL(CSQL21Set)
public:
virtual CString GetDefaultConnect(); // Standard-Verbindungszeichenfolge
virtual CString GetDefaultSQL(); // Standard-SQL für Recordset
virtual void DoFieldExchange(CFieldExchange* pFX); // RFX-Unterstützung
//}}AFX_VIRTUAL

// Implementierung
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif

};

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio fügt zusätzliche Deklarationen unmittelbar vor der vorhergehenden Zeile ein.

#endif
// !defined(AFX_SQL21SET_H__1C3BFD8D_6C1D_11D1_866A_EB762E5B5709__INCLUDED_)



Die Datei SQL21View.cpp

// SQL21View.cpp : Implementierung der Klasse CSQL21View
//

#include "stdafx.h"
#include "SQL21.h"

#include "SQL21Set.h"
#include "SQL21Doc.h"
#include "SQL21View.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSQL21View

IMPLEMENT_DYNCREATE(CSQL21View, CRecordView)

BEGIN_MESSAGE_MAP(CSQL21View, CRecordView)
//{{AFX_MSG_MAP(CSQL21View)
// HINWEIS - Hier werden Mapping-Makros vom Klassen-Assistenten eingefügt und entfernt.
// Innerhalb dieser generierten Quelltextabschnitte NICHTS VERÄNDERN!
//}}AFX_MSG_MAP
// Standard-Druckbefehle
ON_COMMAND(ID_FILE_PRINT, CRecordView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CRecordView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRecordView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSQL21View Konstruktion/Destruktion

CSQL21View::CSQL21View()
: CRecordView(CSQL21View::IDD)
{
//{{AFX_DATA_INIT(CSQL21View)
m_pSet = NULL;
m_ADRESSE = _T("");
m_NAME = _T("");
m_STAAT = _T("");
m_ZIP = _T("");
//}}AFX_DATA_INIT
// ZU ERLEDIGEN: Hier Code zur Konstruktion einfügen,

}

CSQL21View::~CSQL21View()
{
}

void CSQL21View::DoDataExchange(CDataExchange* pDX)
{
CRecordView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSQL21View)
DDX_FieldText(pDX, IDC_ADRESSE, m_pSet->m_ADRESSE, m_pSet);
DDX_FieldText(pDX, IDC_NAME, m_pSet->m_NAME, m_pSet);
DDX_FieldText(pDX, IDC_STAAT, m_pSet->m_STAAT, m_pSet);
DDX_FieldText(pDX, IDC_ZIP, m_pSet->m_ZIP, m_pSet);
//}}AFX_DATA_MAP
}

BOOL CSQL21View::PreCreateWindow(CREATESTRUCT& cs)
{
// ZU ERLEDIGEN: Ändern Sie hier die Fensterklasse oder das Erscheinungsbild, indem Sie
// CREATESTRUCT cs modifizieren.

return CRecordView::PreCreateWindow(cs);
}

void CSQL21View::OnInitialUpdate()
{
m_pSet = &GetDocument()->m_sQL21Set;
CRecordView::OnInitialUpdate();
}

/////////////////////////////////////////////////////////////////////////////
// CSQL21View Drucken

BOOL CSQL21View::OnPreparePrinting(CPrintInfo* pInfo)
{
// Standardvorbereitung
return DoPreparePrinting(pInfo);
}

void CSQL21View::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// ZU ERLEDIGEN: Zusätzliche Initialisierung vor dem Drucken hier einfügen
}

void CSQL21View::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// ZU ERLEDIGEN: Hier Bereinigungsarbeiten nach dem Drucken einfügen
}

/////////////////////////////////////////////////////////////////////////////
// CSQL21View Diagnose

#ifdef _DEBUG
void CSQL21View::AssertValid() const
{
CRecordView::AssertValid();
}

void CSQL21View::Dump(CDumpContext& dc) const
{
CRecordView::Dump(dc);
}

CSQL21Doc* CSQL21View::GetDocument() // Die endgültige (nicht zur Fehlersuche kompilierte) Version ist Inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSQL21Doc)));
return (CSQL21Doc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CSQL21View Datenbankunterstützung
CRecordset* CSQL21View::OnGetRecordset()
{
return m_pSet;
}


/////////////////////////////////////////////////////////////////////////////
// CSQL21View Nachrichten-Handler



Die Datei SQL21View.h

// SQL21View.h : Schnittstelle der Klasse CSQL21View
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_SQL21VIEW_H__1C3BFD8B_6C1D_11D1_866A_EB762E5B5709__INCLUDED_)
#define AFX_SQL21VIEW_H__1C3BFD8B_6C1D_11D1_866A_EB762E5B5709__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

class CSQL21Set;

class CSQL21View : public CRecordView
{
protected: // Nur aus Serialisierung erzeugen
CSQL21View();
DECLARE_DYNCREATE(CSQL21View)

public:
//{{AFX_DATA(CSQL21View)
enum { IDD = IDD_SQL21_FORM };
CSQL21Set* m_pSet;
CString m_ADRESSE;
CString m_NAME;
CString m_STAAT;
CString m_ZIP;
//}}AFX_DATA

// Attribute
public:
CSQL21Doc* GetDocument();

// Operationen
public:

// Überladungen
// Vom Klassenassistenten generierte Überladungen virtueller Funktionen
//{{AFX_VIRTUAL(CSQL21View)
public:
virtual CRecordset* OnGetRecordset();
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
virtual void DoDataExchange(CDataExchange* pDX);
// DDX/DDV-Unterstützung
virtual void OnInitialUpdate(); // das erste mal nach der Konstruktion aufgerufen
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
//}}AFX_VIRTUAL

// Implementierung
public:
virtual ~CSQL21View();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generierte Message-Map-Funktionen
protected:
//{{AFX_MSG(CSQL21View)
// HINWEIS - An dieser Stelle werden Member-Funktionen vom Klassen-Assistenten eingefügt und entfernt.
// Innerhalb dieser generierten Quelltextabschnitte NICHTS VERÄNDERN!
//}}AFX_MsgBox
DECLARE_MESSAGE_MAP()
};

#ifndef _DEBUG // Testversion in SQL21View.cpp
inline CSQL21Doc* CSQL21View::GetDocument()
{ return (CSQL21Doc*)m_pDocument; }
#endif

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio fügt zusätzliche Deklarationen unmittelbar vor der vorhergehenden Zeile ein.

#endif
// !defined(AFX_SQL21VIEW_H__1C3BFD8B_6C1D_11D1_866A_EB762E5B5709__INCLUDED_)



Die Datei StdAfx.cpp

// stdafx.cpp : Quelltextdatei, die nur die Standard-Includes einbindet
// SQL21.pch ist die vorcompilierte Header-Datei
// stdafx.obj enthält die vorcompilierte Typinformation

#include "stdafx.h"



Die Datei StdAfx.h

// stdafx.h : Include-Datei für Standard-System-Include-Dateien,
// oder projektspezifische Include-Dateien, die häufig benutzt, aber
// in unregelmäßigen Abständen geändert werden.
//

#if !defined(AFX_STDAFX_H__1C3BFD85_6C1D_11D1_866A_EB762E5B5709__INCLUDED_)
#define AFX_STDAFX_H__1C3BFD85_6C1D_11D1_866A_EB762E5B5709__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#define VC_EXTRALEAN // Selten verwendete Teile der Windows-Header nicht einbinden

#include <afxwin.h> // MFC-Kern- und -Standardkomponenten
#include <afxext.h> // MFC-Erweiterungen
#include <afxdisp.h> // MFC OLE-Automatisierungsklassen
#include <afxdb.h> // MFC ODBC-Datenbankklassen
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC-Unterstützung für gängige Windows-Steuerelemente
#endif // _AFX_NO_AFXCMN_SUPPORT


//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio fügt zusätzliche Deklarationen unmittelbar vor der vorhergehenden Zeile ein.

#endif // !defined(AFX_STDAFX_H__1C3BFD85_6C1D_11D1_866A_EB762E5B5709__INCLUDED_)



Ein Imprint des Markt&Technik Buch- und Software-Verlag GmbH.
Elektronische Fassung des Titels: SQL in 21 Tagen, ISBN: 3-8272-2020-3


vorheriges KapitelTop Of PageInhaltsverzeichnisIndexInfoseitenächstes Kapitel