Objekt mit einem Connect zu einer Datenbank übergeben!
-
Hallo,
mein Problem ist folgendes: Ich habe in der einen Klasse mit Hilfe einer Klasse, die eine Verbindung zu einer Datenbank aufbauen kann, eben eine Verbindung zu einem SQL-Server aufgebaut. Jetzt würde ich gerne dieses Objekt, welches ich erstellt habe und welches den Connect zu der Datenbank enthält, gerne an ein andere Klasse->Objekt übergeben. Wie stelle ich das am Besten an, damit mir meine Verbindung nicht verloren geht? Per Konstruktor?
Weiss jemand, wie das geht?
...wäre cool, wenn einer ein Beispiel hätte oder mir das erklären könnte...Gruss,
chullain
-
Dieser Thread wurde von Moderator/in Unix-Tom aus dem Forum MFC mit dem Visual C++ in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
öhm, ich weiss nicht ob ich dein Problem richtig verstehe. Wenn du willst, dass alle Objekte die gleiche Datenbank Verbindung benutzen, dann kannst du ja einfach die Datenbank Verbindung statisch deklarieren.
struct database { void connect(); bool is_connected(); void send(const std::string &str); }; class foo { static database db; public: void connect_to_db() { if(!db.is_connected()) db.connect(); } };
ansonsten Speicher einfach nur ein Zeiger auf den Handle
struct database { /*...*/ }; class foo { ::boost::shared_ptr<database> ptr; //<-- aus der boost Library www.boost.org public: foo() : ptr(new database) { } foo(const foo &obj) : ptr(obj.ptr) { } };
-
danke erstmal für deine Antwort...
...war das WE nicht da, darum schreib ich erst heute...also mit dem struct ist es nicht so einfach, da ich fremde Klassen aus einer dll benutze und diese schon gegeben sind...
ein kurzes Beispiel
in der einen Klasse mach ich den Connect zu der Datenbank...ISaGsaRpConnection RpConnection; ... ... ... RpConnection.SetDatabaseType("SQL Server"); RpConnection.SetDatabaseServer("sv026387"); RpConnection.SetDatabaseName("sagent_api"); RpConnection.SetDatabaseUser("api_user"); RpConnection.SetDatabasePassword("xxx"); RpConnection.SetSagentUser("xxx"); RpConnection.SetSagentPassword("xxx"); RpConnection.Connect(); if (RpConnection.IsConnected()) { AfxMessageBox("Login successfully"); }
...jetzt würde ich gerne dieses RpConnection-Objekt in einer andere Klasse in meinem Projekt übergeben...
wie mache ich das am Besten?
-
"mal aktualisier*