Datenquelle: Verwalten von Verbindungen (ODBC)
Dieses Thema bezieht sich auf die MFC-ODBC-Klassen.
In diesem Thema wird Folgendes erläutert:
Wie Sie eine Datenquelle konfigurieren.
Wie sich eine Mehrbenutzerumgebung auf eine Datenquelle und ihre Recordsets auswirkt.
Warum Sie die Verbindungszeichenfolge für eine Datenquelle allgemein formulieren.
Wie Sie die Verbindung zu einer Datenquelle aufbauen.
Wie Sie die Verbindung zu einer Datenquelle trennen.
Wie Sie ein CDatabase-Objekt wiederverwenden.
Der Verbindungsaufbau mit einer Datenquelle umfasst das Herstellen der Kommunikation mit einem DBMS, um auf die Daten zugreifen zu können. Wenn Sie von der Anwendung aus über einen ODBC-Treiber die Verbindung zu einer Datenquelle aufbauen, stellt der Treiber die Verbindung entweder lokal oder über ein Netzwerk her.
Sie können die Verbindung mit jeder beliebigen Datenquelle herstellen, für die Sie einen ODBC-Treiber besitzen. Die Benutzer der Anwendung müssen für ihre Datenquelle denselben ODBC-Treiber verwenden. Weitere Informationen über die Weitergabe von ODBC-Treibern finden Sie unter Weitervertrieb von ODBC-Komponenten an Kunden.
Konfigurieren einer Datenquelle
Datenquellen werden mit dem ODBC-Administrator konfiguriert. Sie können mit dem ODBC-Administrator nach der Installation Datenquellen hinzufügen oder entfernen. Beim Erstellen von Anwendungen können Sie entweder Benutzer anleiten, wie Sie mit dem ODBC-Administrator Datenquellen hinzufügen, oder Sie können diese Funktionalität in die Anwendung integrieren, indem Sie direkte ODBC-Installationsaufrufe durchführen. Weitere Informationen finden Sie unter ODBC-Administrator.
Als Datenquelle kann eine Excel-Datei verwendet werden, die zur Registrierung und zur Anzeige im Dialogfeld Datenquelle auswählen konfiguriert werden muss.
So verwenden Sie eine Excel-Datei als Datenquelle
Konfigurieren Sie die Datei mit dem ODBC-Datenquellen-Administrator.
Klicken Sie auf der Registerkarte Datei-DSN auf Hinzufügen.
Wählen Sie im Dialogfeld Neue Datenquelle erstellen einen Excel-Treiber aus, und klicken Sie auf Weiter.
Klicken Sie auf Durchsuchen, und wählen Sie den Namen der Datei aus, die als Datenquelle verwendet werden soll.
Hinweis
Wählen Sie ggf. im Dropdownmenü Alle Dateien aus, um XLS-Dateien anzuzeigen.
Klicken Sie auf Weiter und anschließend auf Fertig stellen.
Wählen Sie im Dialogfeld ODBC Microsoft Excel Setup die Datenbankversion und die Arbeitsmappe aus.
Arbeiten in einer Mehrbenutzerumgebung
Falls mehrere Benutzer mit derselben Datenquelle verbunden sind, können sie Daten verändern, während Sie dieselben Daten in Ihren Recordsets bearbeiten. Ebenso könnten die von Ihnen durchgeführten Änderungen die Recordsets anderer Benutzer betreffen. Weitere Informationen finden Sie unter Recordset: Datensatzaktualisierung durch Recordsets (ODBC) und Transaktion (ODBC).
Verallgemeinern der Verbindungszeichenfolge
Die Assistenten verwenden für den Verbindungsaufbau mit einer Datenquelle eine Standard-Verbindungszeichenfolge. Mit dieser Verbindung werden während der Entwicklung einer Anwendung Tabellen und Spalten angezeigt. Diese Standard-Verbindungszeichenfolge eignet sich jedoch möglicherweise nicht für die Verbindungen, die Benutzer über die Anwendung mit der Datenquelle aufbauen. Beispielsweise könnten sich die Datenquelle und der Pfad zum Speicherort dieser Datenquelle von denen unterscheiden, die Sie beim Entwickeln der Anwendung verwendet hatten. Für diesen Fall sollten Sie die CRecordset::GetDefaultConnect-Memberfunktion allgemeiner implementieren und die Implementierung des Assistenten verwerfen. Sie können z. B. eine der folgenden Lösungsmöglichkeiten verwenden:
Registrieren und verwalten Sie die Verbindungszeichenfolgen mithilfe des ODBC-Administrators.
Bearbeiten Sie die Verbindungszeichenfolge, und entfernen Sie den Namen der Datenquelle. Das Framework verwendet ODBC als Datenquelle. In ODBC wird zur Laufzeit ein Dialogfeld angezeigt, in dem der Name der Datenquelle und alle anderen erforderlichen Verbindungsinformationen angefordert werden.
Geben Sie ausschließlich den Namen der Datenquelle an. ODBC fordert ggf. zur Eingabe der Benutzer-ID und des Kennworts auf. Vor der Verallgemeinerung könnte die Verbindungszeichenfolge z. B. folgendermaßen aussehen:
CString CApp1Set::GetDefaultConnect() { return "ODBC;DSN=afx;Trusted_Connection=Yes;"; }
In dieser Verbindungszeichenfolge ist angegeben, dass eine vertrauenswürdige Verbindung mit integrierten Sicherheitsfeatures von Windows NT verwendet wird. Die Angabe eines fest codierten bzw. keines Kennworts sollte vermieden werden, da dies zu erheblichen Sicherheitsmängeln führen kann. Sie können stattdessen eine neue Verbindungszeichenfolge für GetDefaultConnect festlegen, sodass Benutzer-ID und Kennwort abgefragt werden.
// User must select data source and supply user ID and password: return "ODBC;"; // User ID and password required: return "ODBC;DSN=mydb;"; // Password required (myuserid must be replaced with a valid user ID): return "ODBC;DSN=mydb;UID=myuserid;"; // Hard-coded user ID and password (SECURITY WEAKNESS--AVOID): return "ODBC;DSN=mydb;UID=sa;PWD=777;";
Aufbauen der Verbindung zu einer bestimmten Datenquelle
Bevor die Anwendung eine Verbindung zu einer bestimmten Datenquelle aufbauen kann, muss diese Datenquelle mit dem ODBC-Administrator konfiguriert worden sein.
So bauen Sie die Verbindung zu einer bestimmten Datenquelle auf
Konstruieren Sie ein CDatabase-Objekt.
Rufen Sie dessen OpenEx-Memberfunktion oder Open-Memberfunktion auf.
Falls Sie eine andere Datenquelle angeben möchten als die, die Sie im Assistenten angegeben hatten, finden Sie weitere Informationen unter CDatabase::OpenEx oder CDatabase::Open in der MFC-Referenz.
Trennen der Verbindung zu einer Datenquelle
Sie müssen alle geöffneten Recordsets schließen, bevor Sie die Close-Memberfunktion von CDatabase aufrufen. In Recordsets, die mit dem CDatabase-Objekt verknüpft sind, das Sie schließen möchten, werden alle anstehenden AddNew-Anweisungen und Edit-Anweisungen abgebrochen und alle anstehenden Transaktionen zurückgesetzt.
So trennen Sie die Verbindung mit einer Datenquelle
Rufen Sie die Close-Memberfunktion des CDatabase-Objekts auf.
Zerstören Sie das Objekt, sofern Sie es nicht wiederverwenden möchten.
Wiederverwenden eines CDatabase-Objekts
Nachdem Sie die Verbindung zu einem CDatabase-Objekt getrennt haben, können Sie dieses wiederverwenden. Hierbei kann entweder eine neue Verbindung zu derselben oder zu einer anderen Datenquelle aufgebaut werden.
So verwenden Sie ein CDatabase-Objekt wieder
Trennen Sie die ursprüngliche Verbindung des Objekts.
Rufen Sie erneut die OpenEx-Memberfunktion oder die Open-Memberfunktion auf, statt das Objekt zu zerstören.