CDaoWorkspace-Klasse
Verwaltet eine benannte, kennwortgeschützte Datenbanksitzung eines einzelnen Benutzers von der Anmeldung bis zu Abmeldung.
Hinweis
Data Access Objects (DAO) wird über Office 2013 unterstützt. DAO 3.6 ist die endgültige 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 weitere 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 Connectivity (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.
Capabilities
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 weitere 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.
Verbrauch
Sie können die Klasse CDaoWorkspace
verwenden, um:
Öffnen Sie explizit den Standardarbeitsbereich.
Normalerweise ist die Verwendung des Standardarbeitsbereichs implizit, wenn Sie neue CDaoDatabase - oder CDaoRecordset-Objekte öffnen. Möglicherweise müssen Sie aber explizit darauf zugreifen. Um beispielsweise 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 Datenbankmodulsitzungen 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 nicht geschlossen haben, und setzt alle nicht abgeschlossenen Transaktionen zurück.
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 vorhandenesCDaoWorkspace
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 einCDaoDatabase
Datenmitglied auf den Arbeitsbereich einer Datenbank zugreifen.Wenn Sie ein
CDaoRecordset
Objekt erstellen, ohne einen Zeiger auf einCDaoDatabase
Objekt anzugeben, erstellt MFC ein temporäres Datenbankobjekt und durch Erweiterung ein temporäres Arbeitsbereichsobjekt. Sie können über einCDaoRecordset
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
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 nicht, können Sie es weiterhin verwenden.
Ein angefügter Arbeitsbereich verbleibt in der Workspaces-Auflistung in einem aktiven, geöffneten Zustand, bis Sie die Funktion " Member schließen" 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 BeginTrans
haben, 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:
Rufen Sie die CommitTrans-Memberfunktion auf, um die Transaktion zu übernehmen und Änderungen an der Datenquelle zu speichern.
Oder rufen Sie die Rollback-Memberfunktion auf, um die Transaktion abzubrechen.
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 AufrufenCreate
kö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 nicht beibehalten werden, wenn die Datenbankmodulsitzung beendet wird. 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, die eine Gruppe von Bearbeitungen und Aktualisierungen in einer oder mehreren Datenbanken im Arbeitsbereich speichert.
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 auf nur 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 zweistufiger 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 der alten Datenbank. Dabei sind folgende Werte möglich:
dbLangGeneral
Englisch, Deutsch, Französisch, Portugiesisch, Italienisch und Modern SpanischdbLangArabic
ArabischdbLangCyrillic
RussischdbLangCzech
TschechischdbLangDutch
HolländischdbLangGreek
GriechischdbLangHebrew
HebräischdbLangHungarian
UngarischdbLangIcelandic
IsländischdbLangNordic
Nordische Sprachen (nur Microsoft Jet-Datenbankmodul, Version 1.0)dbLangNorwdan
Norwegisch und DänischdbLangPolish
PolnischdbLangSpanish
Traditionelles SpanischdbLangSwedfin
Schwedisch und FinnischdbLangTurkish
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 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 beides dbDecrypt
einschließen und dbEncrypt
die lpszDestName
gleiche Verschlüsselung aufweisen 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 aus lpszDestName
. Sie können nur eine Versionskonstante angeben. Wenn Sie eine Versionskonstante weglassen, lpszDestName
hat die gleiche Version wie lpszSrcName
. Sie können nur eine Version komprimieren lpszDestName
, die identisch oder höher ist als lpszSrcName
.
Achtung
Wenn eine Datenbank nicht verschlüsselt ist, ist es möglich, auch wenn Sie die Benutzer-/Kennwortsicherheit implementieren, die binäre Datenträ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 wie 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:
Erstellen Sie ein CDaoWorkspace-Objekt .
Rufen Sie die Memberfunktion des
Create
Objekts auf, um den zugrunde liegenden DAO-Arbeitsbereich zu erstellen. Sie müssen einen Arbeitsbereichsnamen angeben.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 Databases-Auflistung des Arbeitsbereichs abzurufen. Dies ist 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 GetDatabaseInfo
verwenden.
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
A CString
containing the registry location.
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-Registrierungseinstellungen 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 vomselben 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 verschiedener 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
A CString
containing the user-defined name of the DAO workspace object.
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
Ein CString
Objekt, das 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
A CString
that indicates the version of the database engine associated with the object.
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 GetWorkspaceInfo
verwenden.
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 dbFreeLocks
die einzige gültige Aktion .
Hinweise
Dies gilt häufig in 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
ist bei Datenbanken, die mit Version 3.0 des Microsoft Jet-Datenbankmoduls erstellt wurden, 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. Das bedeutet, dass das MFC-Objekt entweder durch einen Aufruf von Open oder durch 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 Aufgaben zu erledigen:
Ö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
fügt das Arbeitsbereichsobjekt in einen geöffneten Zustand ein 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, sind die folgenden Memberfunktionen, die auf dem Datenbankmodul arbeiten, nach der Erstellung des C++-Objekts verfügbar, 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 oder nicht exklusiv verwendet werden kann, 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 auf nur 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. An diesem Punkt, wenn Sie aufrufen CommitTrans
, wird eine unbestimmte Anzahl von Vorgängen zugesichert, aber die verbleibenden 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:
Erstellen Sie ein
CDaoWorkspace
Objekt, rufen Sie jedoch nicht aufCreate
.Rufen Sie
SetDefaultPassword
bei Bedarf SetDefaultUser auf.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 im Create-Aufruf keinen Benutzernamen angeben.
So verwenden Sie diese Memberfunktion:
Erstellen Sie ein
CDaoWorkspace
Objekt, rufen Sie jedoch nicht aufCreate
.Rufen Sie "SetDefaultPassword
SetDefaultUser
" auf, und wählen Sie bei Bedarf "SetDefaultPassword" aus.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 Bereich 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 vomselben 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