Literatur gesucht: Klassendesign für Cross-Datenbank-Entwicklung (oder so)



  • Hallo,

    ich bin auf der Suche nach Literatur oder sonstigem Material im Internet. Ich werde demnächst an einer umfangreicheren Anwendung mitschreiben, die verschiedene Datenbanken unterstützen soll. Speziell sind dies MS SQL-Server, MySQL und vielleicht noch die eine oder andere file-basierte "nicht-SQL-Datenbank". Die breite Palette der zu unterstützenden Datenbanken erfordert ein sauberes Klassen-Design, um eine vom Rest der Applikation getrennte Datenbank-Schicht implementieren zu können.
    Die Entwicklung soll mit dem Borland C++Builder erfolgen.

    würde mich über Hinweise und Anregungen freuen



  • kannst das doch ganz einfach ueber eine Klassen Hierarchy lösen

    struct datenbank {
      virtual ~datenbank() { disconnect(); }
    
      //sendet SQL Befehle an die Datenbank
      virtual bool query(const std::wstring &str) =0;
      //liest Daten, die die Datenbank zurueckgegeben hat
      virtual void read(std::wstring &str,std::size_t &rows,std::size_t &cols) const =0;
    
      virtual void disconnect();
      virtual bool isconnected() const =0;
    };
    
    struct mysql : public datenbank {
      //mysql implementierung ...
    };
    
    struct odbc : public datenbank {
      //odbc implementierung ...
    };
    

    und dann arbeitest du im Code eben mit einem Pointer/Referenz des Typs Datenbank, auf ein Objekt, von mysql oder odbc (etc.).


Anmelden zum Antworten