CDaoWorkspace-Klasse

Verwaltet eine benannte, kennwortgeschützte Datenbanksitzung eines einzelnen Benutzers von der Anmeldung bis zu Abmeldung. DAO wird bis Office 2013 unterstützt. DAO 3.6 ist die letzte Version und gilt als veraltet.

Syntax

class CDaoWorkspace : public CObject

Member

Öffentliche Konstruktoren

Name Beschreibung
CDaoWorkspace::CDaoWorkspace Erstellt ein Arbeitsbereichsobjekt. Danach anrufen Create oder Open.

Öffentliche Methoden

Name Beschreibung
CDaoWorkspace::Append Fügt einen neu erstellten Arbeitsbereich an die Arbeitsbereichssammlung des Datenbankmoduls an.
CDaoWorkspace::BeginTrans Beginnt eine neue Transaktion, die für alle datenbanken gilt, die im Arbeitsbereich geöffnet sind.
CDaoWorkspace::Close Schließt den Arbeitsbereich und alle darin enthaltenen Objekte. Ausstehende Transaktionen werden zurückgesetzt.
CDaoWorkspace::CommitTrans Schließt die aktuelle Transaktion ab und speichert die Änderungen.
CDaoWorkspace::CompactDatabase Komprimiert (oder Duplikate) eine Datenbank.
CDaoWorkspace::Create Erstellt ein neues DAO-Arbeitsbereichsobjekt.
CDaoWorkspace::GetDatabaseCount Gibt die Anzahl der DAO-Datenbankobjekte in der Databases-Auflistung des Arbeitsbereichs zurück.
CDaoWorkspace::GetDatabaseInfo Gibt Informationen zu einer angegebenen DAO-Datenbank zurück, die in der Databases-Auflistung des Arbeitsbereichs definiert ist.
CDaoWorkspace::GetIniPath Gibt den Speicherort der Initialisierungseinstellungen des Microsoft Jet-Datenbankmoduls in der Windows-Registrierung zurück.
CDaoWorkspace::GetIsolateODBCTrans Gibt einen Wert zurück, der angibt, ob mehrere Transaktionen mit derselben ODBC-Datenquelle über erzwungene Verbindungen mit der Datenquelle isoliert werden.
CDaoWorkspace::GetLoginTimeout Gibt die Anzahl von Sekunden zurück, bevor ein Fehler auftritt, wenn der Benutzer versucht, sich bei einer ODBC-Datenbank anzumelden.
CDaoWorkspace::GetName Gibt den benutzerdefinierten Namen für das Arbeitsbereichsobjekt zurück.
CDaoWorkspace::GetUserName Gibt den Benutzernamen zurück, der beim Erstellen des Arbeitsbereichs angegeben wurde. Dies ist der Name des Arbeitsbereichbesitzers.
CDaoWorkspace::GetVersion Gibt eine Zeichenfolge zurück, die die Version des Datenbankmoduls enthält, das dem Arbeitsbereich zugeordnet ist.
CDaoWorkspace::GetWorkspaceCount Gibt die Anzahl der DAO-Arbeitsbereichsobjekte in der Workspaces-Auflistung des Datenbankmoduls zurück.
CDaoWorkspace::GetWorkspaceInfo Gibt Informationen zu einem angegebenen DAO-Arbeitsbereich zurück, der in der Workspaces-Auflistung des Datenbankmoduls definiert ist.
CDaoWorkspace::Idle Ermöglicht es dem Datenbankmodul, Hintergrundaufgaben auszuführen.
CDaoWorkspace::IsOpen Gibt "nonzero" zurück, wenn der Arbeitsbereich geöffnet ist.
CDaoWorkspace::Open Öffnet explizit ein Arbeitsbereichsobjekt, das dem Standardarbeitsbereich von DAO zugeordnet ist.
CDaoWorkspace::RepairDatabase Versucht, eine beschädigte Datenbank zu reparieren.
CDaoWorkspace::Rollback Beendet die aktuelle Transaktion und speichert die Änderungen nicht.
CDaoWorkspace::SetDefaultPassword Legt das Kennwort fest, das das Datenbankmodul verwendet, wenn ein Arbeitsbereichsobjekt ohne ein bestimmtes Kennwort erstellt wird.
CDaoWorkspace::SetDefaultUser Legt den Benutzernamen fest, den das Datenbankmodul verwendet, wenn ein Arbeitsbereichsobjekt ohne einen bestimmten Benutzernamen erstellt wird.
CDaoWorkspace::SetIniPath Legt den Speicherort der Initialisierungseinstellungen des Microsoft Jet-Datenbankmoduls in der Windows-Registrierung fest.
CDaoWorkspace::SetIsolateODBCTrans Gibt an, ob mehrere Transaktionen, die dieselbe ODBC-Datenquelle umfassen, isoliert sind, indem mehrere Verbindungen zur Datenquelle erzwungen werden.
CDaoWorkspace::SetLoginTimeout Legt die Anzahl der Sekunden fest, bevor ein Fehler auftritt, wenn der Benutzer versucht, sich bei einer ODBC-Datenquelle anzumelden.

Öffentliche Datenmember

Name Beschreibung
CDaoWorkspace::m_pDAOWorkspace Verweist auf das zugrunde liegende DAO-Arbeitsbereichsobjekt.

Hinweise

In den meisten Fällen benötigen Sie nicht mehrere Arbeitsbereiche, und Sie müssen keine expliziten Arbeitsbereichsobjekte erstellen. Wenn Sie Datenbank- und Recordsetobjekte öffnen, verwenden sie den Standardarbeitsbereich von DAO. Bei Bedarf können Sie jedoch mehrere Sitzungen gleichzeitig ausführen, indem Sie zusätzliche Arbeitsbereichsobjekte erstellen. Jedes Arbeitsbereichsobjekt kann mehrere geöffnete Datenbankobjekte in einer eigenen Databases-Auflistung enthalten. In MFC ist ein Arbeitsbereich in erster Linie ein Transaktionsmanager, der eine Reihe geöffneter Datenbanken im selben "Transaktionsraum" angibt.

Hinweis

Die DAO-Datenbankklassen unterscheiden sich von den MFC-Datenbankklassen basierend auf Open Database Verbinden ivity (ODBC). Alle DAO-Datenbankklassennamen weisen ein Präfix "CDao" auf. Im Allgemeinen sind die MFC-Klassen, die auf DAO basieren, fähiger als die MFC-Klassen, die auf ODBC basieren. Die DAO-basierten Klassen greifen über das Microsoft Jet-Datenbankmodul, einschließlich ODBC-Treibern, auf Daten zu. Sie unterstützen auch DDL-Vorgänge (Data Definition Language), z. B. das Erstellen von Datenbanken und das Hinzufügen von Tabellen und Feldern über die Klassen, ohne DAO direkt aufrufen zu müssen.

Funktionen

Die Klasse CDaoWorkspace bietet Folgendes:

  • Expliziter Zugriff bei Bedarf auf einen Standardarbeitsbereich, der durch Initialisieren des Datenbankmoduls erstellt wird. In der Regel verwenden Sie implizit den Standardarbeitsbereich von DAO, indem Sie Datenbank- und Recordsetobjekte erstellen.

  • Ein Transaktionsbereich, in dem Transaktionen für alle Datenbanken gelten, die im Arbeitsbereich geöffnet sind. Sie können zusätzliche Arbeitsbereiche erstellen, um separate Transaktionsplätze zu verwalten.

  • Eine Schnittstelle zu vielen Eigenschaften des zugrunde liegenden Microsoft Jet-Datenbankmoduls (siehe statische Memberfunktionen). Öffnen oder Erstellen eines Arbeitsbereichs oder Aufrufen einer statischen Memberfunktion vor dem Öffnen oder Erstellen initialisiert das Datenbankmodul.

  • Zugriff auf die Workspaces-Auflistung des Datenbankmoduls, in der alle aktiven Arbeitsbereiche gespeichert werden, die an das Datenbankmodul angefügt wurden. Sie können auch Arbeitsbereiche erstellen und bearbeiten, ohne sie an die Sammlung anzufügen.

Sicherheit

MFC implementiert nicht die Benutzer- und Gruppensammlungen in DAO, die für die Sicherheitskontrolle verwendet werden. Wenn Sie diese Aspekte von DAO benötigen, müssen Sie sie selbst über direkte Aufrufe an DAO-Schnittstellen programmieren. Weitere Informationen finden Sie im Technischen Hinweis 54.

Verwendung

Sie können die Klasse CDaoWorkspace verwenden, um:

  • Öffnen Sie explizit den Standardarbeitsbereich.

    In der Regel ist die Verwendung des Standardarbeitsbereichs implizit – wenn Sie neue CDaoDatabase - oder CDaoRecordset-Objekte öffnen. Möglicherweise müssen Sie jedoch explizit darauf zugreifen, z. B. um auf Datenbankmoduleigenschaften oder die Workspaces-Auflistung zuzugreifen. Siehe "Implizite Verwendung des Standardarbeitsbereichs" weiter unten.

  • Neue Arbeitsbereiche erstellen. Call Append if you want to add them to the Workspaces collection.

  • Öffnen Sie einen vorhandenen Arbeitsbereich in der Workspaces-Auflistung.

Das Erstellen eines neuen Arbeitsbereichs, der noch nicht in der Workspaces-Auflistung vorhanden ist, wird unter der Funktion "Member erstellen" beschrieben. Arbeitsbereichsobjekte bleiben zwischen Datababase-Modulsitzungen nicht bestehen. Wenn Ihre Anwendung MFC statisch verknüpft, hebt das Beenden der Anwendung die Initialisierung des Datenbankmoduls auf. Wenn Ihre Anwendung dynamisch mit MFC verknüpft ist, wird das Datenbankmodul nicht initialisiert, wenn die MFC-DLL entladen wird.

Das explizite Öffnen des Standardarbeitsbereichs oder das Öffnen eines vorhandenen Arbeitsbereichs in der Workspaces-Auflistung wird unter der Funktion "Member öffnen" beschrieben.

Beenden Sie eine Arbeitsbereichssitzung, indem Sie den Arbeitsbereich mit der Funktion "Member schließen" schließen. Close schließt alle Datenbanken, die Sie zuvor nicht geschlossen haben, und führt ein Rollback aller nicht ausgelassenen Transaktionen durch.

Transaktionen

DAO verwaltet Transaktionen auf Arbeitsbereichsebene; Daher gelten Transaktionen in einem Arbeitsbereich mit mehreren geöffneten Datenbanken für alle Datenbanken. Wenn z. B. zwei Datenbanken nicht bereitgestellte Updates haben und Sie CommitTrans aufrufen, werden alle Updates zugesichert. Wenn Sie Transaktionen auf eine einzelne Datenbank beschränken möchten, benötigen Sie dafür ein separates Arbeitsbereichsobjekt.

Implizite Verwendung des Standardarbeitsbereichs

MFC verwendet implizit den Standardarbeitsbereich von DAO unter folgenden Umständen:

  • Wenn Sie ein neues CDaoDatabase Objekt erstellen, dies aber nicht über ein vorhandenes CDaoWorkspace Objekt tun, erstellt MFC ein temporäres Arbeitsbereichsobjekt für Sie, das dem Standardarbeitsbereich von DAO entspricht. Wenn Dies für mehrere Datenbanken der Fall ist, werden alle Datenbankobjekte dem Standardarbeitsbereich zugeordnet. Sie können über ein CDaoDatabase Datenmitglied auf den Arbeitsbereich einer Datenbank zugreifen.

  • Wenn Sie ein CDaoRecordset Objekt erstellen, ohne einen Zeiger auf ein CDaoDatabase Objekt anzugeben, erstellt MFC ein temporäres Datenbankobjekt und durch Erweiterung ein temporäres Arbeitsbereichsobjekt. Sie können über ein CDaoRecordset Datenelement auf die Datenbank eines Recordsets und indirekt auf dessen Arbeitsbereich zugreifen.

Andere Vorgänge

Andere Datenbankvorgänge werden ebenfalls bereitgestellt, z. B. das Reparieren einer beschädigten Datenbank oder das Komprimieren einer Datenbank.

Informationen zum direkten Aufrufen von DAO und zur DAO-Sicherheit finden Sie in technischem Hinweis 54.

Vererbungshierarchie

CObject

CDaoWorkspace

Anforderungen

Header: afxdao.h

CDaoWorkspace::Append

Rufen Sie diese Memberfunktion nach dem Aufrufen von Create auf.

virtual void Append();

Hinweise

Append fügt ein neu erstelltes Arbeitsbereichsobjekt an die Workspaces-Auflistung des Datenbankmoduls an. Arbeitsbereiche werden nicht zwischen Datenbankmodulsitzungen beibehalten; sie werden nur im Arbeitsspeicher und nicht auf dem Datenträger gespeichert. Sie müssen keinen Arbeitsbereich anfügen; Wenn Sie dies nicht tun, können Sie es weiterhin verwenden.

Ein angefügter Arbeitsbereich erneut Standard in der Workspaces-Auflistung in einem aktiven, geöffneten Zustand, bis Sie seine Close-Member-Funktion aufrufen.

Verwandte Informationen finden Sie im Thema "Append-Methode" in der DAO-Hilfe.

CDaoWorkspace::BeginTrans

Rufen Sie diese Memberfunktion auf, um eine Transaktion zu initiieren.

void BeginTrans();

Hinweise

Nachdem Sie die Daten- oder Datenbankstruktur aufgerufen BeginTranshaben, werden Aktualisierungen wirksam, wenn Sie die Transaktion übernehmen. Da der Arbeitsbereich einen einzelnen Transaktionsbereich definiert, gilt die Transaktion für alle geöffneten Datenbanken im Arbeitsbereich. Es gibt zwei Möglichkeiten, die Transaktion abzuschließen:

Schließen des Arbeitsbereichsobjekts oder eines Datenbankobjekts, während eine Transaktion aussteht, werden alle ausstehenden Transaktionen zurückgesetzt.

Wenn Sie Transaktionen in einer ODBC-Datenquelle von diesen in einer anderen ODBC-Datenquelle isolieren müssen, lesen Sie die Memberfunktion SetIsolateODBCTrans .

CDaoWorkspace::CDaoWorkspace

Erstellt ein CDaoWorkspace-Objekt.

CDaoWorkspace();

Hinweise

Nach dem Erstellen des C++-Objekts haben Sie zwei Optionen:

  • Rufen Sie die Open-Memberfunktion des Objekts auf, um den Standardarbeitsbereich zu öffnen oder ein vorhandenes Objekt in der Workspaces-Auflistung zu öffnen.

  • Oder rufen Sie die Create-Memberfunktion des Objekts auf, um ein neues DAO-Arbeitsbereichsobjekt zu erstellen. Dadurch wird explizit eine neue Arbeitsbereichssitzung gestartet, auf die Sie über das CDaoWorkspace Objekt verweisen können. Nach dem Aufrufen Createkönnen Sie Append aufrufen, wenn Sie den Arbeitsbereich der Arbeitsbereichssammlung des Datenbankmoduls hinzufügen möchten.

Weitere Informationen zum expliziten Erstellen eines CDaoWorkspace Objekts finden Sie in der Klassenübersicht für CDaoWorkspace. In der Regel verwenden Sie Implizit erstellte Arbeitsbereiche, wenn Sie ein CDaoDatabase-Objekt öffnen, ohne einen Arbeitsbereich anzugeben oder ein CDaoRecordset-Objekt ohne Angabe eines Datenbankobjekts zu öffnen. Auf diese Weise erstellte MFC DAO-Objekte verwenden den Standardarbeitsbereich von DAO, der einmal erstellt und wiederverwendet wird.

Um einen Arbeitsbereich und seine enthaltenen Objekte freizugeben, rufen Sie die Close-Member-Funktion des Arbeitsbereichsobjekts auf.

CDaoWorkspace::Close

Rufen Sie diese Memberfunktion auf, um das Arbeitsbereichsobjekt zu schließen.

virtual void Close();

Hinweise

Durch das Schließen eines geöffneten Arbeitsbereichsobjekts wird das zugrunde liegende DAO-Objekt freigegeben, und wenn der Arbeitsbereich Mitglied der Workspaces-Auflistung ist, wird es aus der Auflistung entfernt. Das Aufrufen Close ist eine gute Programmierpraxis.

Achtung

Durch das Schließen eines Arbeitsbereichsobjekts werden alle geöffneten Datenbanken im Arbeitsbereich geschlossen. Dies führt dazu, dass alle Recordsets, die in den Datenbanken geöffnet sind, ebenfalls geschlossen werden, und alle ausstehenden Bearbeitungen oder Aktualisierungen werden zurückgesetzt. Verwandte Informationen finden Sie in den CDaoDatabase::Close-, CDaoRecordset::Close-, CDaoTableDef::Close- und CDaoQueryDef::Close-Memberfunktionen .

Arbeitsbereichsobjekte sind nicht dauerhaft; sie sind nur vorhanden, während Verweise auf sie vorhanden sind. Dies bedeutet, dass der Arbeitsbereich und die Datenbanksammlung beim Beenden der Datenbankmodulsitzung nicht beibehalten werden. Sie müssen sie für die nächste Sitzung erneut erstellen, indem Sie Den Arbeitsbereich und die Datenbank(en) erneut öffnen.

Verwandte Informationen finden Sie im Thema "Close Method" in der DAO-Hilfe.

CDaoWorkspace::CommitTrans

Rufen Sie diese Memberfunktion auf, um eine Transaktion zu übernehmen – speichern Sie eine Gruppe von Bearbeitungen und Aktualisierungen in einer oder mehreren Datenbanken im Arbeitsbereich.

void CommitTrans();

Hinweise

Eine Transaktion besteht aus einer Reihe von Änderungen an den Daten der Datenbank oder deren Struktur, beginnend mit einem Aufruf von BeginTrans. Wenn Sie die Transaktion abgeschlossen haben, übernehmen Sie die Transaktion, oder führen Sie einen Rollback aus (Abbrechen der Änderungen). Standardmäßig werden aktualisierungen von Datensätzen ohne Transaktionen sofort übernommen. Das Aufrufen BeginTrans bewirkt, dass die Verpflichtung von Updates verzögert wird, bis Sie anrufen CommitTrans.

Achtung

Innerhalb eines Arbeitsbereichs sind Transaktionen immer global für den Arbeitsbereich und sind nicht nur auf eine Datenbank oder ein Recordset beschränkt. Wenn Sie Vorgänge für mehr als eine Datenbank oder ein Recordset in einer Arbeitsbereichstransaktion ausführen, CommitTrans werden alle ausstehenden Aktualisierungen ausgeführt und Rollback alle Vorgänge für diese Datenbanken und Recordsets wiederhergestellt.

Wenn Sie eine Datenbank oder einen Arbeitsbereich mit ausstehenden Transaktionen schließen, werden alle Transaktionen zurückgesetzt.

Hinweis

Dies ist kein Zwei-Phasen-Commitmechanismus. Wenn ein Update keinen Commit ausführen kann, werden andere weiterhin commiten.

CDaoWorkspace::CompactDatabase

Rufen Sie diese Memberfunktion auf, um einen angegebenen Microsoft Jet () zu komprimieren. MDB)-Datenbank.

static void PASCAL CompactDatabase(
    LPCTSTR lpszSrcName,
    LPCTSTR lpszDestName,
    LPCTSTR lpszLocale = dbLangGeneral,
    int nOptions = 0);

static void PASCAL CompactDatabase(
    LPCTSTR lpszSrcName,
    LPCTSTR lpszDestName,
    LPCTSTR lpszLocale,
    int nOptions,
    LPCTSTR lpszPassword);

Parameter

lpszSrcName
Der Name einer vorhandenen, geschlossenen Datenbank. Er kann ein vollständiger Pfad und Dateiname sein, z. B. "C:\\MYDB". MDB". Wenn der Dateiname über eine Erweiterung verfügt, müssen Sie ihn angeben. Wenn Ihr Netzwerk die einheitliche Benennungskonvention (UNIFORM Naming Convention, UNC) unterstützt, können Sie auch einen Netzwerkpfad angeben, z. B. "\\\MYSERVER\\MYSHARE\\MYDIR\\MYDB". MDB". (Doppelte umgekehrte Schrägstriche sind in den Pfadzeichenfolgen erforderlich, da "\" das C++-Escapezeichen ist.)

lpszDestName
Der vollständige Pfad der komprimierten Datenbank, die Sie erstellen. Sie können auch einen Netzwerkpfad wie lpszSrcName angeben. Sie können das Argument lpszDestName nicht verwenden, um dieselbe Datenbankdatei wie lpszSrcName anzugeben.

lpszPassword
Ein Kennwort, das verwendet wird, wenn Sie eine kennwortgeschützte Datenbank komprimieren möchten. Wenn Sie die Version dieses CompactDatabase Kennworts verwenden, müssen Sie alle Parameter angeben. Da es sich hierbei um einen Verbindungsparameter handelt, ist eine spezielle Formatierung erforderlich, wie folgt: ;P WD= lpszPassword. Beispiel: ;P WD="Happy". (Das führende Semikolon ist erforderlich.)

lpszLocale
Ein Zeichenfolgenausdruck, der zum Angeben der Sortierreihenfolge zum Erstellen von lpszDestName verwendet wird. Wenn Sie dieses Argument weglassen, indem Sie den Standardwert von dbLangGeneral (siehe unten) akzeptieren, entspricht das Gebietsschema der neuen Datenbank dem der alten Datenbank. Dabei sind folgende Werte möglich:

  • dbLangGeneral Englisch, Deutsch, Französisch, Portugiesisch, Italienisch und Modern Spanisch

  • dbLangArabic Arabisch

  • dbLangCyrillic Russisch

  • dbLangCzech Tschechisch

  • dbLangDutch Holländisch

  • dbLangGreek Griechisch

  • dbLangHebrew Hebräisch

  • dbLangHungarian Ungarisch

  • dbLangIcelandic Isländisch

  • dbLangNordic Nordische Sprachen (nur Microsoft Jet-Datenbankmodul, Version 1.0)

  • dbLangNorwdan Norwegisch und Dänisch

  • dbLangPolish Polnisch

  • dbLangSpanish Traditionelles Spanisch

  • dbLangSwedfin Schwedisch und Finnisch

  • dbLangTurkish Türkisch

nOptions
Gibt eine oder mehrere Optionen für die Zieldatenbank an, lpszDestName. Wenn Sie dieses Argument weglassen, indem Sie den Standardwert akzeptieren, hat der lpszDestName dieselbe Verschlüsselung und dieselbe Version wie lpszSrcName. Sie können die dbEncrypt Oder-Option dbDecrypt mit einer der Versionsoptionen kombinieren, indem Sie den Bitweise-OR-Operator verwenden. Mögliche Werte, die ein Datenbankformat angeben, keine Datenbankmodulversion, sind:

  • dbEncrypt Verschlüsseln Sie die Datenbank beim Komprimieren.

  • dbDecrypt Entschlüsseln Sie die Datenbank beim Komprimieren.

  • dbVersion10 Erstellen Sie eine Datenbank, die beim Komprimieren die Version 1.0 des Microsoft Jet-Datenbankmoduls verwendet.

  • dbVersion11 Erstellen Sie eine Datenbank, die beim Komprimieren die Version 1.1 des Microsoft Jet-Datenbankmoduls verwendet.

  • dbVersion20 Erstellen Sie eine Datenbank, die beim Komprimieren die Version 2.0 des Microsoft Jet-Datenbankmoduls verwendet.

  • dbVersion30 Erstellen Sie eine Datenbank, die beim Komprimieren die Version 3.0 des Microsoft Jet-Datenbankmoduls verwendet.

Mit dem dbDecrypt Optionsargument können dbEncrypt Sie angeben, ob die Datenbank verschlüsselt oder entschlüsselt werden soll, während sie komprimiert ist. Wenn Sie eine Verschlüsselungskonstante weglassen oder wenn Sie beide dbDecryptdbEncryptund "lpszDestName" einschließen, hat die gleiche Verschlüsselung wie lpszSrcName. Sie können eine der Versionskonstanten im Optionsargument verwenden, um die Version des Datenformats für die komprimierte Datenbank anzugeben. Diese Konstante wirkt sich nur auf die Version des Datenformats von lpszDestName aus. Sie können nur eine Versionskonstante angeben. Wenn Sie eine Versionskonstante weglassen, hat lpszDestName dieselbe Version wie lpszSrcName. Sie können lpszDestName nur auf eine Version komprimieren, die identisch oder höher ist als die von lpszSrcName.

Achtung

Wenn eine Datenbank nicht verschlüsselt ist, ist es möglich, auch wenn Sie die Benutzer-/Kennwortsicherheit implementieren, die Binärdatenträgerdatei, die die Datenbank darstellt, direkt zu lesen.

Hinweise

Wenn Sie Daten in einer Datenbank ändern, kann die Datenbankdatei fragmentiert werden und mehr Speicherplatz als erforderlich verwenden. In regelmäßigen Abständen sollten Sie die Datenbank komprimieren, um die Datenbankdatei zu defragmentieren. Die komprimierte Datenbank ist in der Regel kleiner. Sie können auch die Sortierreihenfolge, die Verschlüsselung oder die Version des Datenformats ändern, während Sie die Datenbank kopieren und komprimieren.

Achtung

Die CompactDatabase Memberfunktion konvertiert keine vollständige Microsoft Access-Datenbank von einer Version in eine andere. Nur das Datenformat wird konvertiert. Von Microsoft Access definierte Objekte, z. B. Formulare und Berichte, werden nicht konvertiert. Die Daten werden jedoch ordnungsgemäß konvertiert.

Tipp

Sie können auch CompactDatabase eine Datenbankdatei kopieren.

Weitere Informationen zum Komprimieren von Datenbanken finden Sie im Thema "CompactDatabase Method" in der DAO-Hilfe.

CDaoWorkspace::Create

Rufen Sie diese Memberfunktion auf, um ein neues DAO-Arbeitsbereichsobjekt zu erstellen und es dem MFC-Objekt CDaoWorkspace zuzuordnen.

virtual void Create(
    LPCTSTR lpszName,
    LPCTSTR lpszUserName,
    LPCTSTR lpszPassword);

Parameter

lpszName
Eine Zeichenfolge mit bis zu 14 Zeichen, die das neue Arbeitsbereichsobjekt eindeutig benennt. Sie müssen einen Namen angeben. Verwandte Informationen finden Sie im Thema "Name Property" in der DAO-Hilfe.

lpszUserName
Der Benutzername des Besitzers des Arbeitsbereichs. Anforderungen finden Sie im parameter lpszDefaultUser zur Memberfunktion SetDefaultUser . Verwandte Informationen finden Sie im Thema "UserName Property" in der DAO-Hilfe.

lpszPassword
Das Kennwort für das neue Arbeitsbereichsobjekt. Ein Kennwort kann bis zu 14 Zeichen lang sein und kann ein beliebiges Zeichen mit Ausnahme von ASCII 0 (null) enthalten. Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden. Verwandte Informationen finden Sie im Thema "Password Property" in der DAO-Hilfe.

Hinweise

Der gesamte Erstellungsprozess lautet:

  1. Erstellen Sie ein CDaoWorkspace-Objekt .

  2. Rufen Sie die Memberfunktion des Create Objekts auf, um den zugrunde liegenden DAO-Arbeitsbereich zu erstellen. Sie müssen einen Arbeitsbereichsnamen angeben.

  3. Rufen Sie optional "Append" auf, wenn Sie den Arbeitsbereich der Arbeitsbereichssammlung des Datenbankmoduls hinzufügen möchten. Sie können mit dem Arbeitsbereich arbeiten, ohne ihn anzufügen.

Nach dem Create Aufruf befindet sich das Arbeitsbereichsobjekt in einem geöffneten Zustand, der zur Verwendung bereit ist. Sie rufen Open nicht nach Create. Sie rufen nicht auf Create , wenn der Arbeitsbereich bereits in der Workspaces-Auflistung vorhanden ist. Create initialisiert das Datenbankmodul, wenn es für Ihre Anwendung noch nicht initialisiert wurde.

CDaoWorkspace::GetDatabaseCount

Rufen Sie diese Memberfunktion auf, um die Anzahl der DAO-Datenbankobjekte in der Datenbanksammlung des Arbeitsbereichs abzurufen – die Anzahl der geöffneten Datenbanken im Arbeitsbereich.

short GetDatabaseCount();

Rückgabewert

Die Anzahl der geöffneten Datenbanken im Arbeitsbereich.

Hinweise

GetDatabaseCount ist nützlich, wenn Sie alle definierten Datenbanken in der Datenbanksammlung des Arbeitsbereichs durchlaufen müssen. Informationen zu einer bestimmten Datenbank in der Auflistung finden Sie unter GetDatabaseInfo. Die typische Verwendung besteht darin, die Anzahl der geöffneten Datenbanken aufzurufen GetDatabaseCount und diese Nummer dann als Schleifenindex für wiederholte Aufrufe zu GetDatabaseInfoverwenden.

CDaoWorkspace::GetDatabaseInfo

Rufen Sie diese Memberfunktion auf, um verschiedene Arten von Informationen zu einer datenbank abzurufen, die im Arbeitsbereich geöffnet ist.

void GetDatabaseInfo(
    int nIndex,
    CDaoDatabaseInfo& dbinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetDatabaseInfo(
    LPCTSTR lpszName,
    CDaoDatabaseInfo& dbinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

Parameter

nIndex
Der nullbasierte Index des Datenbankobjekts in der Databases-Auflistung des Arbeitsbereichs für die Suche nach Index.

dbinfo
Ein Verweis auf ein CDaoDatabaseInfo -Objekt, das die angeforderten Informationen zurückgibt.

dwInfoOptions
Optionen, die angeben, welche Informationen über die abzurufende Datenbank angegeben werden sollen. Die verfügbaren Optionen werden hier zusammen mit dem aufgeführt, was dazu führt, dass die Funktion zurückgegeben wird:

  • AFX_DAO_PRIMARY_INFO (Standard) Name, Aktualisierbar, Transaktionen

  • AFX_DAO_SECONDARY_INFO Primäre Informationen plus: Version, Sortierreihenfolge, Abfragetimeout

  • AFX_DAO_ALL_INFO Primäre und sekundäre Informationen plus: Verbinden

lpszName
Der Name des Datenbankobjekts für die Suche nach Namen. Der Name ist eine Zeichenfolge mit bis zu 14 Zeichen, die das neue Arbeitsbereichsobjekt eindeutig benennt.

Hinweise

Mit einer Version der Funktion können Sie eine Datenbank nach Index nachschlagen. Mit der anderen Version können Sie eine Datenbank anhand des Namens nachschlagen.

Eine Beschreibung der in dbinfo zurückgegebenen Informationen finden Sie in der CDaoDatabaseInfo-Struktur. Diese Struktur enthält Elemente, die den oben aufgeführten Informationselementen in der Beschreibung von dwInfoOptions entsprechen. Wenn Sie Informationen auf einer Ebene anfordern, erhalten Sie auch Informationen für alle vorherigen Ebenen.

CDaoWorkspace::GetIniPath

Rufen Sie diese Memberfunktion auf, um den Speicherort der Initialisierungseinstellungen des Microsoft Jet-Datenbankmoduls in der Windows-Registrierung abzurufen.

static CString PASCAL GetIniPath();

Rückgabewert

Eine CString mit dem Registrierungsspeicherort.

Hinweise

Sie können den Speicherort verwenden, um Informationen zu den Einstellungen für das Datenbankmodul abzurufen. Die zurückgegebenen Informationen sind tatsächlich der Name eines Registrierungsunterschlüssels.

Verwandte Informationen finden Sie in der DAO-Hilfe in den Themen "IniPath-Eigenschaft" und "Anpassen der Windows-Registrierung Einstellungen für Den Datenzugriff".

CDaoWorkspace::GetIsolateODBCTrans

Rufen Sie diese Memberfunktion auf, um den aktuellen Wert der DAO IsolateODBCTrans-Eigenschaft für den Arbeitsbereich abzurufen.

BOOL GetIsolateODBCTrans();

Rückgabewert

Nonzero, wenn ODBC-Transaktionen isoliert sind; andernfalls 0.

Hinweise

In einigen Fällen müssen Sie möglicherweise mehrere gleichzeitige Transaktionen in derselben ODBC-Datenbank ausstehen. Dazu müssen Sie einen separaten Arbeitsbereich für jede Transaktion öffnen. Beachten Sie, dass die Systemleistung verlangsamt wird, obwohl jeder Arbeitsbereich eine eigene ODBC-Verbindung mit der Datenbank haben kann. Da die Transaktionsisolation normalerweise nicht erforderlich ist, werden ODBC-Verbindungen aus mehreren Arbeitsbereichsobjekten, die vom gleichen Benutzer geöffnet werden, standardmäßig freigegeben.

Einige ODBC-Server, z. B. Microsoft SQL Server, lassen keine gleichzeitigen Transaktionen für eine einzelne Verbindung zu. Wenn für eine solche Datenbank mehrere Transaktionen gleichzeitig ausstehen müssen, legen Sie die IsolateODBCTrans-Eigenschaft für jeden Arbeitsbereich auf TRUE fest, sobald Sie sie öffnen. Dadurch wird für jeden Arbeitsbereich eine separate ODBC-Verbindung erzwungen.

Verwandte Informationen finden Sie im Thema "IsolateODBCTrans Property" in der DAO-Hilfe.

CDaoWorkspace::GetLoginTimeout

Rufen Sie diese Memberfunktion auf, um den aktuellen Wert der DAO LoginTimeout-Eigenschaft für den Arbeitsbereich abzurufen.

static short PASCAL GetLoginTimeout();

Rückgabewert

Die Anzahl der Sekunden, bevor ein Fehler auftritt, wenn Sie versuchen, sich bei einer ODBC-Datenbank anzumelden.

Hinweise

Dieser Wert stellt die Anzahl von Sekunden dar, bevor ein Fehler auftritt, wenn Sie versuchen, sich bei einer ODBC-Datenbank anzumelden. Die Standardeinstellung "LoginTimeout" beträgt 20 Sekunden. Wenn LoginTimeout auf 0 festgelegt ist, tritt kein Timeout auf, und die Kommunikation mit der Datenquelle reagiert möglicherweise nicht mehr.

Wenn Sie versuchen, sich bei einer ODBC-Datenbank anzumelden, z. B. Microsoft SQL Server, schlägt die Verbindung möglicherweise aufgrund von Netzwerkfehlern fehl oder weil der Server nicht ausgeführt wird. Anstatt auf die Standardverbindung von 20 Sekunden zu warten, können Sie angeben, wie lange das Datenbankmodul wartet, bevor ein Fehler entsteht. Die Anmeldung am Server erfolgt implizit als Teil einer Reihe unterschiedlicher Ereignisse, z. B. das Ausführen einer Abfrage in einer externen Serverdatenbank.

Verwandte Informationen finden Sie im Thema "LoginTimeout-Eigenschaft" in der DAO-Hilfe.

CDaoWorkspace::GetName

Rufen Sie diese Memberfunktion auf, um den benutzerdefinierten Namen des DAO-Arbeitsbereichsobjekts abzurufen, das dem CDaoWorkspace Objekt zugrunde liegt.

CString GetName();

Rückgabewert

Eine CString mit dem benutzerdefinierten Namen des DAO-Arbeitsbereichsobjekts.

Hinweise

Der Name ist nützlich für den Zugriff auf das DAO-Arbeitsbereichsobjekt in der Workspaces-Auflistung des Datenbankmoduls anhand des Namens.

Verwandte Informationen finden Sie im Thema "Name Property" in der DAO-Hilfe.

CDaoWorkspace::GetUserName

Rufen Sie diese Memberfunktion auf, um den Namen des Besitzers des Arbeitsbereichs abzurufen.

CString GetUserName();

Rückgabewert

Eine CString , die den Besitzer des Arbeitsbereichsobjekts darstellt.

Hinweise

Um die Berechtigungen für den Arbeitsbereichbesitzer abzurufen oder festzulegen, rufen Sie DAO direkt auf, um die Einstellung der Berechtigungseigenschaft zu überprüfen; dies bestimmt, welche Berechtigungen der Benutzer hat. Um mit Berechtigungen zu arbeiten, benötigen Sie ein SYSTEM. MDA-Datei.

Informationen zum direkten Aufrufen von DAO finden Sie in technischem Hinweis 54. Verwandte Informationen finden Sie im Thema "UserName Property" in der DAO-Hilfe.

CDaoWorkspace::GetVersion

Rufen Sie diese Memberfunktion auf, um die verwendete Version des Microsoft Jet-Datenbankmoduls zu ermitteln.

static CString PASCAL GetVersion();

Rückgabewert

Eine CString , die die Version des Datenbankmoduls angibt, das dem Objekt zugeordnet ist.

Hinweise

Der zurückgegebene Wert stellt die Versionsnummer in der Form "major.minor" dar; Beispiel: "3.0". Die Produktversionsnummer (z. B. 3.0) besteht aus der Versionsnummer (3), einem Punkt und der Versionsnummer (0).

Verwandte Informationen finden Sie im Thema "Version Property" in der DAO-Hilfe.

CDaoWorkspace::GetWorkspaceCount

Rufen Sie diese Memberfunktion auf, um die Anzahl der DAO-Arbeitsbereichsobjekte in der Workspaces-Auflistung des Datenbankmoduls abzurufen.

short GetWorkspaceCount();

Rückgabewert

Die Anzahl der geöffneten Arbeitsbereiche in der Workspaces-Auflistung.

Hinweise

Diese Anzahl enthält keine geöffneten Arbeitsbereiche, die nicht an die Auflistung angefügt werden. GetWorkspaceCount ist nützlich, wenn Sie alle definierten Arbeitsbereiche in der Workspaces-Auflistung durchlaufen müssen. Informationen zu einem bestimmten Arbeitsbereich in der Sammlung finden Sie unter GetWorkspaceInfo. Die typische Verwendung besteht darin, die Anzahl der geöffneten Arbeitsbereiche aufzurufen GetWorkspaceCount und diese Nummer dann als Schleifenindex für wiederholte Aufrufe zu GetWorkspaceInfoverwenden.

CDaoWorkspace::GetWorkspaceInfo

Rufen Sie diese Memberfunktion auf, um verschiedene Arten von Informationen zu einem arbeitsbereich abzurufen, der in der Sitzung geöffnet ist.

void GetWorkspaceInfo(
    int nIndex,
    CDaoWorkspaceInfo& wkspcinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetWorkspaceInfo(
    LPCTSTR lpszName,
    CDaoWorkspaceInfo& wkspcinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

Parameter

nIndex
Der nullbasierte Index des Datenbankobjekts in der Workspaces-Auflistung für die Suche nach Index.

wkspcinfo
Ein Verweis auf ein CDaoWorkspaceInfo -Objekt, das die angeforderten Informationen zurückgibt.

dwInfoOptions
Optionen, die angeben, welche Informationen zum abzurufenden Arbeitsbereich enthalten. Die verfügbaren Optionen werden hier zusammen mit dem aufgeführt, was dazu führt, dass die Funktion zurückgegeben wird:

  • AFX_DAO_PRIMARY_INFO (Standard) Name

  • AFX_DAO_SECONDARY_INFO Primäre Informationen plus: Benutzername

  • AFX_DAO_ALL_INFO Primäre und sekundäre Informationen plus: ODBCTrans isolieren

lpszName
Der Name des Arbeitsbereichsobjekts für die Nachschlagevorgang nach Name. Der Name ist eine Zeichenfolge mit bis zu 14 Zeichen, die das neue Arbeitsbereichsobjekt eindeutig benennt.

Hinweise

Eine Beschreibung der in wkspcinfo zurückgegebenen Informationen finden Sie in der CDaoWorkspaceInfo-Struktur. Diese Struktur enthält Elemente, die den oben aufgeführten Informationselementen in der Beschreibung von dwInfoOptions entsprechen. Wenn Sie Informationen auf einer Ebene anfordern, erhalten Sie auch Informationen zu früheren Ebenen.

CDaoWorkspace::Idle

Rufen Sie Idle auf, um dem Datenbankmodul die Möglichkeit zu bieten, Hintergrundaufgaben auszuführen, die aufgrund einer intensiven Datenverarbeitung möglicherweise nicht auf dem neuesten Stand sind.

static void PASCAL Idle(int nAction = dbFreeLocks);

Parameter

nAction
Eine Aktion, die während der Leerlaufverarbeitung ausgeführt werden soll. Derzeit ist dbFreeLocksdie einzige gültige Aktion .

Hinweise

Dies gilt häufig für Multiuser-Multitaskingumgebungen, in denen nicht genügend Zeit für die Hintergrundverarbeitung vorhanden ist, um alle Datensätze in einem Recordset aktuell zu halten.

Hinweis

Das Aufrufen Idle von Datenbanken, die mit Version 3.0 des Microsoft Jet-Datenbankmoduls erstellt wurden, ist nicht erforderlich. Wird nur für Datenbanken verwendet Idle , die mit früheren Versionen erstellt wurden.

In der Regel werden Lesesperren entfernt, und Daten in lokalen Recordsetobjekten vom Typ Dynaset werden nur aktualisiert, wenn keine anderen Aktionen (einschließlich Mausbewegungen) auftreten. Wenn Sie regelmäßig aufrufen Idle, stellen Sie dem Datenbankmodul Zeit zur Verfügung, um sich über Hintergrundverarbeitungsaufgaben zu informieren, indem Sie nicht benötigte Lesesperren freigeben. Wenn Sie die Konstante als Argument angeben, wird die dbFreeLocks Verarbeitung verzögert, bis alle Lesesperren freigegeben werden.

Diese Memberfunktion ist in Einzelbenutzerumgebungen nicht erforderlich, es sei denn, mehrere Instanzen einer Anwendung werden ausgeführt. Die Idle Memberfunktion kann die Leistung in einer Mehrbenutzerumgebung erhöhen, da das Datenbankmodul das Leeren von Daten auf den Datenträger erzwingt und Sperrungen im Arbeitsspeicher freigibt. Sie können lesesperren auch freigeben, indem Sie Vorgänge teil einer Transaktion machen.

Verwandte Informationen finden Sie im Thema "Idle Method" in der DAO-Hilfe.

CDaoWorkspace::IsOpen

Rufen Sie diese Memberfunktion auf, um zu bestimmen, ob das CDaoWorkspace Objekt geöffnet ist , d. h. ob das MFC-Objekt durch einen Aufruf von Open oder einen Aufruf von Create initialisiert wurde.

BOOL IsOpen() const;

Rückgabewert

Nonzero, wenn das Arbeitsbereichsobjekt geöffnet ist; andernfalls 0.

Hinweise

Sie können eine der Memberfunktionen eines Arbeitsbereichs aufrufen, der sich in einem geöffneten Zustand befindet.

CDaoWorkspace::m_pDAOWorkspace

Ein Zeiger auf das zugrunde liegende DAO-Arbeitsbereichsobjekt.

Hinweise

Verwenden Sie dieses Datenelement, wenn Sie direkten Zugriff auf das zugrunde liegende DAO-Objekt benötigen. Sie können die Schnittstellen des DAO-Objekts über diesen Zeiger aufrufen.

Informationen zum direkten Zugriff auf DAO-Objekte finden Sie in technischem Hinweis 54.

CDaoWorkspace::Open

Öffnet explizit ein Arbeitsbereichsobjekt, das dem Standardarbeitsbereich von DAO zugeordnet ist.

virtual void Open(LPCTSTR lpszName = NULL);

Parameter

lpszName
Der Name des zu öffnenden DAO-Arbeitsbereichsobjekts – eine Zeichenfolge mit bis zu 14 Zeichen, die den Arbeitsbereich eindeutig benennt. Akzeptieren Sie den Standardwert NULL, um den Standardarbeitsbereich explizit zu öffnen. Die Benennungsanforderungen finden Sie im lpszName-Parameter für Create. Verwandte Informationen finden Sie im Thema "Name Property" in der DAO-Hilfe.

Hinweise

Rufen Sie nach dem Erstellen eines CDaoWorkspace Objekts diese Memberfunktion auf, um eine der folgenden Aktionen auszuführen:

  • Öffnen Sie explizit den Standardarbeitsbereich. Übergeben Sie NULL für lpszName.

  • Öffnen Sie ein vorhandenes CDaoWorkspace Objekt, ein Element der Workspaces-Auflistung anhand des Namens. Übergeben Sie einen gültigen Namen für ein vorhandenes Arbeitsbereichsobjekt.

Open versetzt das Arbeitsbereichsobjekt in einen geöffneten Zustand und initialisiert auch das Datenbankmodul, wenn es für Ihre Anwendung noch nicht initialisiert wurde.

Obwohl viele CDaoWorkspace Memberfunktionen erst aufgerufen werden können, nachdem der Arbeitsbereich geöffnet wurde, stehen die folgenden Memberfunktionen, die auf dem Datenbankmodul arbeiten, nach der Erstellung des C++-Objekts, aber vor einem Aufruf von Open:

CDaoWorkspace::RepairDatabase

Rufen Sie diese Memberfunktion auf, wenn Sie versuchen müssen, eine beschädigte Datenbank zu reparieren, die auf das Microsoft Jet-Datenbankmodul zugreift.

static void PASCAL RepairDatabase(LPCTSTR lpszName);

Parameter

lpszName
Der Pfad und dateiname für eine vorhandene Microsoft Jet-Moduldatenbankdatei. Wenn Sie den Pfad weglassen, wird nur das aktuelle Verzeichnis durchsucht. Wenn Ihr System die einheitliche Benennungskonvention (UNIFORM Naming Convention, UNC) unterstützt, können Sie auch einen Netzwerkpfad angeben, z. B. "\\\\MYSERVER\\MYSHARE\\MYDIR\\MYDB. MDB". (Doppelte umgekehrte Schrägstriche sind in der Pfadzeichenfolge erforderlich, da "\" das C++-Escapezeichen ist.)

Hinweise

Sie müssen die durch lpszName angegebene Datenbank schließen, bevor Sie sie reparieren. In einer Mehrbenutzerumgebung können andere Benutzer lpszName nicht öffnen, während Sie sie reparieren. Wenn lpszName nicht geschlossen ist oder nicht für die exklusive Verwendung verfügbar ist, tritt ein Fehler auf.

Diese Memberfunktion versucht, eine Datenbank zu reparieren, die durch einen unvollständigen Schreibvorgang als möglicherweise beschädigt markiert wurde. Dies kann auftreten, wenn eine Anwendung, die das Microsoft Jet-Datenbankmodul verwendet, unerwartet aufgrund eines Stromausfalls oder Eines Computerhardwareproblems geschlossen wird. Wenn Sie den Vorgang abschließen und die Funktion "Member schließen" aufrufen oder die Anwendung normal beenden, wird die Datenbank nicht als möglicherweise beschädigt markiert.

Hinweis

Nach der Reparatur einer Datenbank empfiehlt es sich auch, sie mithilfe der CompactDatabase-Memberfunktion zu komprimieren, um die Datei zu defragmentieren und Speicherplatz wiederherzustellen.

Weitere Informationen zum Reparieren von Datenbanken finden Sie im Thema "RepairDatabase Method" in der DAO-Hilfe.

CDaoWorkspace::Rollback

Rufen Sie diese Memberfunktion auf, um die aktuelle Transaktion zu beenden, und stellen Sie alle Datenbanken im Arbeitsbereich auf ihre Bedingung zurück, bevor die Transaktion begonnen wurde.

void Rollback();

Hinweise

Achtung

Innerhalb eines Arbeitsbereichsobjekts sind Transaktionen immer global für den Arbeitsbereich und sind nicht nur auf eine Datenbank oder ein Recordset beschränkt. Wenn Sie Vorgänge für mehr als eine Datenbank oder ein Recordset innerhalb einer Arbeitsbereichstransaktion ausführen, Rollback werden alle Vorgänge für alle diese Datenbanken und Recordsets wiederhergestellt.

Wenn Sie ein Arbeitsbereichsobjekt schließen, ohne ausstehende Transaktionen zu speichern oder zurückzuschalten, werden die Transaktionen automatisch zurückgesetzt. Wenn Sie CommitTrans oder Rollback ohne ersten Aufruf von BeginTrans aufrufen, tritt ein Fehler auf.

Hinweis

Wenn Sie eine Transaktion beginnen, zeichnet das Datenbankmodul seine Vorgänge in einer Datei auf, die in dem verzeichnis gespeichert ist, das durch die Temp-Umgebungsvariable auf der Arbeitsstation angegeben ist. Wenn die Transaktionsprotokolldatei den verfügbaren Speicher auf Ihrem TEMP-Laufwerk ausdämpft, führt das Datenbankmodul dazu, dass MFC einen CDaoException (DAO-Fehler 2004) auslöst. Wenn Sie eine unbestimmte Anzahl von Vorgängen aufrufenCommitTrans, werden an diesem Punkt ein Commit ausgeführt, aber die erneuten Standard nicht abgeschlossenen Vorgänge gehen verloren, und der Vorgang muss neu gestartet werden. Durch Aufrufen Rollback wird das Transaktionsprotokoll freigegeben und alle Vorgänge in der Transaktion zurückgesetzt.

CDaoWorkspace::SetDefaultPassword

Rufen Sie diese Memberfunktion auf, um das Standardkennwort festzulegen, das das Datenbankmodul verwendet, wenn ein Arbeitsbereichsobjekt ohne ein bestimmtes Kennwort erstellt wird.

static void PASCAL SetDefaultPassword(LPCTSTR lpszPassword);

Parameter

lpszPassword
Das Standardkennwort. Ein Kennwort kann bis zu 14 Zeichen lang sein und kann ein beliebiges Zeichen mit Ausnahme von ASCII 0 (null) enthalten. Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden.

Hinweise

Das von Ihnen festgelegte Standardkennwort gilt für neue Arbeitsbereiche, die Sie nach dem Aufruf erstellen. Wenn Sie nachfolgende Arbeitsbereiche erstellen, müssen Sie im Create-Aufruf kein Kennwort angeben.

So verwenden Sie diese Memberfunktion:

  1. Erstellen Sie ein CDaoWorkspace Objekt, rufen Sie jedoch nicht auf Create.

  2. Rufen Sie SetDefaultPassword bei Bedarf SetDefaultUser auf.

  3. Rufen Sie Create dieses Arbeitsbereichsobjekt oder nachfolgende auf, ohne ein Kennwort anzugeben.

Standardmäßig wird die DefaultUser-Eigenschaft auf "admin" festgelegt, und die DefaultPassword-Eigenschaft wird auf eine leere Zeichenfolge ("") festgelegt.

Weitere Informationen zur Sicherheit finden Sie im Thema "Permissions Property" in der DAO-Hilfe. Verwandte Informationen finden Sie in den Themen "DefaultPassword-Eigenschaft" und "DefaultUser-Eigenschaft" in der DAO-Hilfe.

CDaoWorkspace::SetDefaultUser

Rufen Sie diese Memberfunktion auf, um den Standardbenutzernamen festzulegen, den das Datenbankmodul verwendet, wenn ein Arbeitsbereichsobjekt ohne einen bestimmten Benutzernamen erstellt wird.

static void PASCAL SetDefaultUser(LPCTSTR lpszDefaultUser);

Parameter

lpszDefaultUser
Der Standardbenutzername. Ein Benutzername kann 1 bis 20 Zeichen lang sein und alphabetische Zeichen enthalten, Akzentzeichen, Zahlen, Leerzeichen und Symbole mit Ausnahme von: " (Anführungszeichen), / (Schrägstrich), \ (Umgekehrter Schrägstrich), [ ] (eckige Klammern), : (Doppelpunkt), | (Pipe), < (Kleiner-als-Zeichen), (Größer-als-Zeichen), >+ (Pluszeichen), (Gleichheitszeichen), =; (Semikolon), , ( Komma), (Fragezeichen), * (Sternchen), führende Leerzeichen und Steuerzeichen (ASCII 00 bis ASCII 31). Verwandte Informationen finden Sie im Thema "UserName Property" in der DAO-Hilfe.

Hinweise

Der von Ihnen festgelegte Standardbenutzername gilt für neue Arbeitsbereiche, die Sie nach dem Aufruf erstellen. Wenn Sie nachfolgende Arbeitsbereiche erstellen, müssen Sie keinen Benutzernamen im Create-Aufruf angeben.

So verwenden Sie diese Memberfunktion:

  1. Erstellen Sie ein CDaoWorkspace Objekt, rufen Sie jedoch nicht auf Create.

  2. Rufen Sie "SetDefaultPassword SetDefaultUser " auf, und wählen Sie bei Bedarf "SetDefaultPassword" aus.

  3. Rufen Sie Create dieses Arbeitsbereichsobjekt oder nachfolgende auf, ohne einen Benutzernamen anzugeben.

Standardmäßig wird die DefaultUser-Eigenschaft auf "admin" festgelegt, und die DefaultPassword-Eigenschaft wird auf eine leere Zeichenfolge ("") festgelegt.

Verwandte Informationen finden Sie in der DAO-Hilfe unter den Themen "DefaultUser-Eigenschaft" und "DefaultPassword-Eigenschaft".

CDaoWorkspace::SetIniPath

Rufen Sie diese Memberfunktion auf, um den Speicherort der Windows-Registrierungseinstellungen für das Microsoft Jet-Datenbankmodul anzugeben.

static void PASCAL SetIniPath(LPCTSTR lpszRegistrySubKey);

Parameter

lpszRegistrySubkey
Eine Zeichenfolge mit dem Namen eines Windows-Registrierungsunterschlüssels für den Speicherort der Einstellungen oder Parameter des Microsoft Jet-Datenbankmoduls, die für installierbare ISAM-Datenbanken erforderlich sind.

Hinweise

Rufen Sie SetIniPath nur auf, wenn Sie spezielle Einstellungen angeben müssen. Weitere Informationen finden Sie im Thema "IniPath-Eigenschaft" in der DAO-Hilfe.

Hinweis

Rufen Sie SetIniPath während der Anwendungsinstallation auf, nicht wenn die Anwendung ausgeführt wird. SetIniPath muss aufgerufen werden, bevor Sie Arbeitsbereiche, Datenbanken oder Recordsets öffnen; andernfalls löst MFC eine Ausnahme aus.

Sie können diesen Mechanismus verwenden, um das Datenbankmodul mit vom Benutzer bereitgestellten Registrierungseinstellungen zu konfigurieren. Der Umfang dieses Attributs ist auf Ihre Anwendung beschränkt und kann nicht geändert werden, ohne die Anwendung neu zu starten.

CDaoWorkspace::SetIsolateODBCTrans

Rufen Sie diese Memberfunktion auf, um den Wert der DAO IsolateODBCTrans-Eigenschaft für den Arbeitsbereich festzulegen.

void SetIsolateODBCTrans(BOOL bIsolateODBCTrans);

Parameter

bIsolateODBCTrans
Übergeben Sie TRUE, wenn Sie mit dem Isolieren von ODBC-Transaktionen beginnen möchten. Übergeben Sie FALSE, wenn Sie das Isolieren von ODBC-Transaktionen beenden möchten.

Hinweise

In einigen Fällen müssen Sie möglicherweise mehrere gleichzeitige Transaktionen in derselben ODBC-Datenbank ausstehen. Dazu müssen Sie einen separaten Arbeitsbereich für jede Transaktion öffnen. Obwohl jeder Arbeitsbereich über eine eigene ODBC-Verbindung mit der Datenbank verfügen kann, verlangsamt dies die Systemleistung. Da die Transaktionsisolation normalerweise nicht erforderlich ist, werden ODBC-Verbindungen aus mehreren Arbeitsbereichsobjekten, die vom gleichen Benutzer geöffnet werden, standardmäßig freigegeben.

Einige ODBC-Server, z. B. Microsoft SQL Server, lassen keine gleichzeitigen Transaktionen für eine einzelne Verbindung zu. Wenn für eine solche Datenbank mehrere Transaktionen gleichzeitig ausstehen müssen, legen Sie die IsolateODBCTrans-Eigenschaft für jeden Arbeitsbereich auf TRUE fest, sobald Sie sie öffnen. Dadurch wird für jeden Arbeitsbereich eine separate ODBC-Verbindung erzwungen.

CDaoWorkspace::SetLoginTimeout

Rufen Sie diese Memberfunktion auf, um den Wert der DAO LoginTimeout-Eigenschaft für den Arbeitsbereich festzulegen.

static void PASCAL SetLoginTimeout(short nSeconds);

Parameter

nSeconds
Die Anzahl der Sekunden, bevor ein Fehler auftritt, wenn Sie versuchen, sich bei einer ODBC-Datenbank anzumelden.

Hinweise

Dieser Wert stellt die Anzahl von Sekunden dar, bevor ein Fehler auftritt, wenn Sie versuchen, sich bei einer ODBC-Datenbank anzumelden. Die Standardeinstellung "LoginTimeout" beträgt 20 Sekunden. Wenn LoginTimeout auf 0 festgelegt ist, tritt kein Timeout auf, und die Kommunikation mit der Datenquelle reagiert möglicherweise nicht mehr.

Wenn Sie versuchen, sich bei einer ODBC-Datenbank anzumelden, z. B. Microsoft SQL Server, schlägt die Verbindung möglicherweise aufgrund von Netzwerkfehlern fehl oder weil der Server nicht ausgeführt wird. Anstatt auf die Standardverbindung von 20 Sekunden zu warten, können Sie angeben, wie lange das Datenbankmodul wartet, bevor ein Fehler entsteht. Die Anmeldung am Server erfolgt implizit als Teil einer Reihe verschiedener Ereignisse, z. B. das Ausführen einer Abfrage in einer externen Serverdatenbank. Der Timeoutwert wird durch die aktuelle Einstellung der LoginTimeout-Eigenschaft bestimmt.

Verwandte Informationen finden Sie im Thema "LoginTimeout-Eigenschaft" in der DAO-Hilfe.

Siehe auch

CObject-Klasse
Hierarchiediagramm
CDaoDatabase-Klasse
CDaoRecordset-Klasse
CDaoTableDef-Klasse
CDaoQueryDef-Klasse
CDaoException-Klasse