Hallo !
;-)
Glaube zu vertehen wie Du's meinst, aber kann man nicht die "Welten" mittels einer Singleton-Fassade voneinander trennen ?
Was ist eine Singleton-Fassade?
Ein Singleton, das eine Fassade realisiert.
DIE koennte man dann so prozedural odr OO-like skalieren wie man's grade braucht.
Was ist OO-like skalieren?
"prozedural odr OO-like skalieren"
1. Prozedurales und/oder OO-Interface schaffen, dabei
2. entscheiden ob sowas wie connect() ein Connection-Objekt liefert oder "nur" eine Ressource verwaltet.
Sowas wie "Fenster", "Rahmen", oder "Document" und "View" finde ich praedstiniert fuer einen OO-Ansatz;
data grid oder single dataset edit, ja, warum nicht? Wenn Du Lust hast, kannst Du mir Deine Beispiele erklären.
Gamma et al. geben ja sogar einen WYSIWYG-Editor als Fallstudie.
Wer oder was ist "Gamma et al."?
Autoren von Design Patterns; aka "Gang of Four".
Den Bruch zwischen OO und RDBMS kann man doch mittels DAO ( allgemein; nicht das was MS ausliefert ) oder halt einem threadsicheren Single Access Point ( Singleton::getInstance() ) kaschieren, oder ?
Bitte mal unter Nutzung möglichst vieler einfacher deutscher Wörter erläutern.
DAO und "threadsicheren Single Access Point ( Singleton::getInstance() )"
erklaer ich 'mal
Wenn man ein, ggf. hinter einer Singleton-Fassade (s.o.) verstecktes Subsystem fuer den DB-zugriff schafft. erhaelt man durch die getInstance() (Klassen)Metode einen globalen Zugriffspunkt auf dieses Subsystem.
Dieser sollte threadsicher sein; deshalb muessen alle (Klassen-)Methoden die von dem Eexemplar bereitstellt werden auch threadsicher sein.
DAO
#include <string>
// abstract
class DAO
{
//[...]
public:
/* abstract*/ virtual int write_to_db() = 0;
/* abstract*/ virtual int read_from_db() = 0;
//[...]
};
class Foo : public DAO
{
private:
unsigned integer m_id;
std::string label m_label;
//[...]
public:
/* virtual */ int write_to_db();
/* virtual */ int read_from_db();
//[...]
};
zum Zugriff hierauf :
CREATE TABLE foo
(
id UNSIGNED INTEGER NOT NULL AUTO_INCREMENT,
label VARCHAR(42),
PRIMARY KEY (id)
);
Nur von 1:1 Modell/Form ( wie bei MS - Recordset Forms ) ist, denke ich, Abstand zu nehmen.
Ebenfalls bitte erläutern, bei "MS - Recordsets Forms" verstehe ich nicht genau was gemeint ist.
MFC Class Wizard : Mapping von DB-Feldern auf Widgets.
Wenn, dann sollte man SPs OO-klammern, oder ?
Brr. Was soll da genau gemacht werden? (Spielst Du auf die Möglichkeit an unter MS SQL Server 2005 mit VS Studio bspw. T-SQL mit VB-Code zu mischen? Und dabei irgendwie OO vorzugehen?)
Man kapselt nicht (nur) einzelne Tabellen sondern SP's die man zum INSERT verwendet.
Bsp: Neuer Kunde / Neue Rechnung ( in 1 : n Relation )
Kunde anlegen => PK besorgen => Rechung anlegen => per Fk zu KD. zuordnen
Das ganze in einem (DAO-)Objekt.
Gruesse
Holger
P.S.:
VB-Code
"VB-Code" kenn ich nicht. Was ist das ?
VielLeicht "Visual Beginner's All Purpose Symbolic Instruction Code Code" ?
Also die "Allzweckanleitungssprachesprache fuer Menschen die sehen lernen" ?
:-)
P.P.S.:
Karl Lagerfeld, zu einer neuen BOSS-Kollektion befragt:
"Boss ? Boss ?? Hogo Boss ??? Kenn ich nicht - wer ist das ????"
Aus dem Perl Styleguide:
"Choose mnemonic identifiers. If you can't remember what mnemonic means, you've got a problem."