Udostępnij za pośrednictwem


Klasa CDaoWorkspace

Zarządza nazwaną sesją bazy danych chronioną hasłem od logowania do wylogowania przez jednego użytkownika.

Uwaga

Obiekty dostępu do danych (DAO) są obsługiwane za pośrednictwem pakietu Office 2013. DaO 3.6 jest wersją ostateczną i jest uważany za przestarzałą.

Składnia

class CDaoWorkspace : public CObject

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CDaoWorkspace::CDaoWorkspace Tworzy obiekt obszaru roboczego. Następnie wywołaj metodę Create lub Open.

Metody publiczne

Nazwa/nazwisko opis
CDaoWorkspace::Append Dołącza nowo utworzony obszar roboczy do kolekcji Obszary robocze aparatu bazy danych.
CDaoWorkspace::BeginTrans Rozpoczyna nową transakcję, która ma zastosowanie do wszystkich baz danych otwartych w obszarze roboczym.
CDaoWorkspace::Close Zamyka obszar roboczy i wszystkie zawarte w nim obiekty. Oczekujące transakcje są cofane.
CDaoWorkspace::CommitTrans Kończy bieżącą transakcję i zapisuje zmiany.
CDaoWorkspace::CompactDatabase Kompaktuje (lub duplikuje) bazę danych.
CDaoWorkspace::Create Tworzy nowy obiekt obszaru roboczego DAO.
CDaoWorkspace::GetDatabaseCount Zwraca liczbę obiektów bazy danych DAO w kolekcji Bazy danych obszaru roboczego.
CDaoWorkspace::GetDatabaseInfo Zwraca informacje o określonej bazie danych DAO zdefiniowanej w kolekcji Bazy danych obszaru roboczego.
CDaoWorkspace::GetIniPath Zwraca lokalizację ustawień inicjowania aparatu bazy danych Microsoft Jet w rejestrze systemu Windows.
CDaoWorkspace::GetIsolateODBCTrans Zwraca wartość wskazującą, czy wiele transakcji obejmujących to samo źródło danych ODBC jest izolowanych za pośrednictwem wymuszonych wielu połączeń ze źródłem danych.
CDaoWorkspace::GetLoginTimeout Zwraca liczbę sekund przed wystąpieniem błędu, gdy użytkownik próbuje zalogować się do bazy danych ODBC.
CDaoWorkspace::GetName Zwraca nazwę zdefiniowaną przez użytkownika dla obiektu obszaru roboczego.
CDaoWorkspace::GetUserName Zwraca nazwę użytkownika określoną podczas tworzenia obszaru roboczego. Jest to nazwa właściciela obszaru roboczego.
CDaoWorkspace::GetVersion Zwraca ciąg zawierający wersję aparatu bazy danych skojarzonego z obszarem roboczym.
CDaoWorkspace::GetWorkspaceCount Zwraca liczbę obiektów obszaru roboczego DAO w kolekcji Obszary robocze aparatu bazy danych.
CDaoWorkspace::GetWorkspaceInfo Zwraca informacje o określonym obszarze roboczym dao zdefiniowanym w kolekcji Obszary robocze aparatu bazy danych.
CDaoWorkspace::Idle Umożliwia aparatowi bazy danych wykonywanie zadań w tle.
CDaoWorkspace::IsOpen Zwraca wartość inną niżzerowa, jeśli obszar roboczy jest otwarty.
CDaoWorkspace::Open Jawnie otwiera obiekt obszaru roboczego skojarzony z domyślnym obszarem roboczym dao.
CDaoWorkspace::RepairDatabase Próbuje naprawić uszkodzoną bazę danych.
CDaoWorkspace::Rollback Kończy bieżącą transakcję i nie zapisuje zmian.
CDaoWorkspace::SetDefaultPassword Ustawia hasło używane przez aparat bazy danych podczas tworzenia obiektu obszaru roboczego bez określonego hasła.
CDaoWorkspace::SetDefaultUser Ustawia nazwę użytkownika używaną przez aparat bazy danych podczas tworzenia obiektu obszaru roboczego bez określonej nazwy użytkownika.
CDaoWorkspace::SetIniPath Ustawia lokalizację ustawień inicjowania aparatu bazy danych Microsoft Jet w rejestrze systemu Windows.
CDaoWorkspace::SetIsolateODBCTrans Określa, czy wiele transakcji obejmujących to samo źródło danych ODBC jest izolowanych przez wymuszenie wielu połączeń ze źródłem danych.
CDaoWorkspace::SetLoginTimeout Ustawia liczbę sekund przed wystąpieniem błędu, gdy użytkownik próbuje zalogować się do źródła danych ODBC.

Publiczne elementy członkowskie danych

Nazwa/nazwisko opis
CDaoWorkspace::m_pDAOWorkspace Wskazuje podstawowy obiekt obszaru roboczego DAO.

Uwagi

W większości przypadków nie będziesz potrzebować wielu obszarów roboczych i nie musisz tworzyć jawnych obiektów obszaru roboczego; podczas otwierania obiektów bazy danych i zestawu rekordów używają domyślnego obszaru roboczego dao. Jednak w razie potrzeby można uruchomić wiele sesji naraz, tworząc więcej obiektów obszaru roboczego. Każdy obiekt obszaru roboczego może zawierać wiele otwartych obiektów bazy danych we własnej kolekcji Databases. W MFC obszar roboczy jest przede wszystkim menedżerem transakcji, określając zestaw otwartych baz danych w tym samym "obszarze transakcji".

Uwaga

Klasy baz danych DAO różnią się od klas baz danych MFC opartych na technologii Open Database Connectivity (ODBC). Wszystkie nazwy klas bazy danych DAO mają prefiks "CDao". Ogólnie rzecz biorąc, klasy MFC oparte na DAO są bardziej zdolne niż klasy MFC oparte na ODBC. Klasy oparte na dao uzyskują dostęp do danych za pośrednictwem aparatu bazy danych Microsoft Jet, w tym sterowników ODBC. Obsługują one również operacje języka DDL (Data Definition Language), takie jak tworzenie baz danych i dodawanie tabel i pól za pośrednictwem klas bez konieczności bezpośredniego wywoływania obiektu DAO.

Możliwości

Klasa CDaoWorkspace udostępnia:

  • W razie potrzeby jawny dostęp do domyślnego obszaru roboczego utworzony przez zainicjowanie aparatu bazy danych. Zazwyczaj domyślny obszar roboczy dao jest używany niejawnie przez tworzenie obiektów bazy danych i zestawu rekordów.

  • Obszar transakcji, w którym transakcje mają zastosowanie do wszystkich baz danych otwartych w obszarze roboczym. Możesz utworzyć więcej obszarów roboczych do zarządzania oddzielnymi przestrzeniami transakcji.

  • Interfejs do wielu właściwości bazowego aparatu bazy danych Microsoft Jet (zobacz statyczne funkcje składowe). Otwieranie lub tworzenie obszaru roboczego albo wywoływanie statycznej funkcji składowej przed otwarciem lub utworzeniem inicjuje aparat bazy danych.

  • Dostęp do kolekcji Obszary robocze aparatu bazy danych, w której są przechowywane wszystkie aktywne obszary robocze, które zostały do niej dołączone. Możesz również tworzyć obszary robocze i pracować z nimi bez dołączania ich do kolekcji.

Zabezpieczenia

MFC nie implementuje kolekcji Użytkownicy i grupy w daO, które są używane do kontroli zabezpieczeń. Jeśli potrzebujesz tych aspektów dao, musisz zaprogramować je samodzielnie za pośrednictwem bezpośrednich wywołań interfejsów DAO. Aby uzyskać informacje, zobacz Uwaga techniczna 54.

Użycie

Możesz użyć klasy CDaoWorkspace do:

  • Jawnie otwórz domyślny obszar roboczy.

    Zazwyczaj użycie domyślnego obszaru roboczego jest niejawne podczas otwierania nowych obiektów CDaoDatabase lub CDaoRecordset . Może być jednak konieczne jawne uzyskanie do niego dostępu. Na przykład w celu uzyskania dostępu do właściwości aparatu bazy danych lub kolekcji Obszary robocze. Zobacz "Niejawne użycie domyślnego obszaru roboczego" poniżej.

  • Utwórz nowe obszary robocze. Wywołaj metodę Append , jeśli chcesz dodać je do kolekcji Obszary robocze.

  • Otwórz istniejący obszar roboczy w kolekcji Obszary robocze.

Tworzenie nowego obszaru roboczego, który jeszcze nie istnieje w kolekcji Obszary robocze, jest opisane w funkcji Tworzenie elementu członkowskiego. Obiekty obszaru roboczego nie są utrwalane w żaden sposób między sesjami aparatu bazy danych. Jeśli aplikacja łączy MFC statycznie, kończąc aplikację, uninitializuje aparat bazy danych. Jeśli aplikacja łączy się dynamicznie z MFC, aparat bazy danych jest niezainicjowany, gdy biblioteka MFC DLL zostanie zwolniona.

Jawne otwarcie domyślnego obszaru roboczego lub otwarcie istniejącego obszaru roboczego w kolekcji Obszary robocze jest opisane w funkcji Otwórz element członkowski.

Zakończ sesję obszaru roboczego, zamykając obszar roboczy za pomocą funkcji Zamknij element członkowski. Close Zamyka wszystkie bazy danych, które nie zostały zamknięte i cofa wszystkie niezatwierdzone transakcje.

Transakcje

DaO zarządza transakcjami na poziomie obszaru roboczego; w związku z tym transakcje w obszarze roboczym z wieloma otwartymi bazami danych mają zastosowanie do wszystkich baz danych. Jeśli na przykład dwie bazy danych mają niezatwierdzone aktualizacje i wywołasz metodę CommitTrans, wszystkie aktualizacje zostaną zatwierdzone. Jeśli chcesz ograniczyć transakcje do pojedynczej bazy danych, potrzebujesz oddzielnego obiektu obszaru roboczego.

Niejawne użycie domyślnego obszaru roboczego

W następujących okolicznościach domyślny obszar roboczy daO jest używany w sposób niejawny:

  • Jeśli utworzysz nowy CDaoDatabase obiekt, ale nie zrobisz tego za pomocą istniejącego CDaoWorkspace obiektu, MFC utworzy tymczasowy obiekt obszaru roboczego, który odpowiada domyślnemu obszarowi roboczemu dao. W przypadku wielu baz danych wszystkie obiekty bazy danych są skojarzone z domyślnym obszarem roboczym. Dostęp do obszaru roboczego bazy danych można uzyskać za pośrednictwem CDaoDatabase elementu członkowskiego danych.

  • Podobnie, jeśli utworzysz CDaoRecordset obiekt bez podawania wskaźnika do CDaoDatabase obiektu, MFC tworzy tymczasowy obiekt bazy danych i, według rozszerzenia, tymczasowy obiekt obszaru roboczego. Dostęp do bazy danych zestawu rekordów i pośrednio do jej obszaru roboczego CDaoRecordset można uzyskać za pośrednictwem elementu członkowskiego danych.

Inne operacje

Dostępne są również inne operacje bazy danych, takie jak naprawianie uszkodzonej bazy danych lub kompaktowanie bazy danych.

Aby uzyskać informacje na temat bezpośredniego wywoływania dao i zabezpieczeń DAO, zobacz Technical Note 54 (Uwaga techniczna 54).

Hierarchia dziedziczenia

CObject

CDaoWorkspace

Wymagania

Nagłówek: afxdao.h

CDaoWorkspace::Append

Wywołaj tę funkcję składową po wywołaniu metody Utwórz.

virtual void Append();

Uwagi

Append Dołącza nowo utworzony obiekt obszaru roboczego do kolekcji Obszary robocze aparatu bazy danych. Obszary robocze nie są utrwalane między sesjami aparatu bazy danych; są one przechowywane tylko w pamięci, a nie na dysku. Nie musisz dołączać obszaru roboczego; Jeśli tego nie zrobisz, nadal możesz go użyć.

Dołączany obszar roboczy pozostaje w kolekcji Obszary robocze w stanie aktywnym, otwartym do momentu wywołania funkcji Zamknij składowej.

Aby uzyskać powiązane informacje, zobacz temat "Metoda dołączania" w pomocy dao.

CDaoWorkspace::BeginTrans

Wywołaj tę funkcję składową, aby zainicjować transakcję.

void BeginTrans();

Uwagi

Po wywołaniu BeginTransmetody aktualizacje wprowadzone w strukturze danych lub bazy danych zaczęły obowiązywać po zatwierdzeniu transakcji. Ponieważ obszar roboczy definiuje jedną przestrzeń transakcji, transakcja ma zastosowanie do wszystkich otwartych baz danych w obszarze roboczym. Istnieją dwa sposoby ukończenia transakcji:

  • Wywołaj funkcję member CommitTrans, aby zatwierdzić transakcję i zapisać zmiany w źródle danych.

  • Możesz też wywołać funkcję elementu członkowskiego Wycofywanie, aby anulować transakcję.

Zamknięcie obiektu obszaru roboczego lub obiektu bazy danych, gdy transakcja oczekuje na wycofanie wszystkich oczekujących transakcji.

Jeśli musisz odizolować transakcje od jednego źródła danych ODBC od tych w innym źródle danych ODBC, zobacz funkcję składową SetIsolateODBCTrans .

CDaoWorkspace::CDaoWorkspace

CDaoWorkspace Tworzy obiekt.

CDaoWorkspace();

Uwagi

Po utworzeniu obiektu języka C++ dostępne są dwie opcje:

  • Wywołaj funkcję Open member obiektu , aby otworzyć domyślny obszar roboczy lub otworzyć istniejący obiekt w kolekcji Obszary robocze.

  • Możesz też wywołać funkcję create member obiektu w celu utworzenia nowego obiektu obszaru roboczego DAO. Spowoduje to jawne uruchomienie nowej sesji obszaru roboczego, do której można odwoływać się za pośrednictwem CDaoWorkspace obiektu. Po wywołaniu metody Createmożesz wywołać funkcję Append , jeśli chcesz dodać obszar roboczy do kolekcji Obszary robocze aparatu bazy danych.

Zapoznaj się z omówieniem klasy CDaoWorkspace , aby uzyskać informacje o tym, kiedy trzeba jawnie utworzyć CDaoWorkspace obiekt. Zazwyczaj obszary robocze tworzone niejawnie są używane podczas otwierania obiektu CDaoDatabase bez określania obszaru roboczego lub otwierania obiektu CDaoRecordset bez określania obiektu bazy danych. Obiekty MFC DAO utworzone w ten sposób używają domyślnego obszaru roboczego dao, który jest tworzony raz i ponownie używany.

Aby zwolnić obszar roboczy i zawarte w nim obiekty, wywołaj funkcję elementu członkowskiego Close obiektu obszaru roboczego.

CDaoWorkspace::Close

Wywołaj tę funkcję składową, aby zamknąć obiekt obszaru roboczego.

virtual void Close();

Uwagi

Zamknięcie otwartego obiektu obszaru roboczego zwalnia źródłowy obiekt DAO, a jeśli obszar roboczy jest członkiem kolekcji Obszary robocze, usuwa go z kolekcji. Wywoływanie jest dobrym rozwiązaniem Close programistycznym.

Uwaga

Zamknięcie obiektu obszaru roboczego zamyka wszystkie otwarte bazy danych w obszarze roboczym. Spowoduje to również otwarcie zestawów rekordów w bazach danych, a wszystkie oczekujące zmiany lub aktualizacje zostaną wycofane. Aby uzyskać powiązane informacje, zobacz funkcje CDaoDatabase::Close, CDaoRecordset::Close, CDaoTableDef::Close i CDaoQueryDef::Close .

Obiekty obszaru roboczego nie są trwałe; istnieją tylko wtedy, gdy istnieją odwołania do nich. Oznacza to, że po zakończeniu sesji aparatu bazy danych obszar roboczy i jego kolekcja Bazy danych nie będą utrwalane. Należy je ponownie utworzyć dla następnej sesji, otwierając ponownie obszar roboczy i bazy danych.

Aby uzyskać powiązane informacje, zobacz temat "Close Method" (Metoda zamykania) w pomocy dao.

CDaoWorkspace::CommitTrans

Wywołaj tę funkcję składową, aby zatwierdzić transakcję, która zapisuje grupę edycji i aktualizacji do co najmniej jednej bazy danych w obszarze roboczym.

void CommitTrans();

Uwagi

Transakcja składa się z serii zmian danych bazy danych lub jej struktury, począwszy od wywołania funkcji BeginTrans. Po zakończeniu transakcji zatwierdź ją lub wycofaj (anuluj zmiany) z wycofaniem. Domyślnie bez transakcji aktualizacje rekordów są zatwierdzane natychmiast. Wywołanie BeginTrans powoduje opóźnienie zobowiązania aktualizacji do momentu wywołania metody CommitTrans.

Uwaga

W jednym obszarze roboczym transakcje są zawsze globalne dla obszaru roboczego i nie są ograniczone tylko do jednej bazy danych ani zestawu rekordów. Jeśli wykonujesz operacje na więcej niż jednej bazie danych lub zestawie rekordów w ramach transakcji obszaru roboczego, CommitTrans zatwierdza wszystkie oczekujące aktualizacje i Rollback przywraca wszystkie operacje na tych bazach danych i zestawach rekordów.

Po zamknięciu bazy danych lub obszaru roboczego z oczekującymi transakcjami wszystkie transakcje zostaną wycofane.

Uwaga

Nie jest to mechanizm zatwierdzania dwufazowego. Jeśli nie można zatwierdzić jednej aktualizacji, inne nadal będą zatwierdzane.

CDaoWorkspace::CompactDatabase

Wywołaj tę funkcję składową, aby skompaktować określony pakiet Microsoft Jet (. Baza danych MDB.

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);

Parametry

lpszSrcName
Nazwa istniejącej, zamkniętej bazy danych. Może to być pełna ścieżka i nazwa pliku, na przykład "C:\\MYDB. MDB". Jeśli nazwa pliku ma rozszerzenie, należy go określić. Jeśli sieć obsługuje jednolitą konwencję nazewnictwa (UNC), możesz również określić ścieżkę sieciową, taką jak "\\\MYSERVER\\MYSHARE\\MYDIR\\MYDB. MDB". (Podwójne ukośniki odwrotne są wymagane w ciągach ścieżki, ponieważ "\" jest znakiem ucieczki języka C++).

lpszDestName
Pełna ścieżka kompaktowanej bazy danych, którą tworzysz. Można również określić ścieżkę sieciową tak jak w przypadku lpszSrcName. Nie można użyć argumentu lpszDestName , aby określić ten sam plik bazy danych co lpszSrcName.

lpszPassword
Hasło używane, gdy chcesz skompaktować bazę danych chronioną hasłem. Jeśli używasz wersji CompactDatabase , która przyjmuje hasło, musisz podać wszystkie parametry. Ponadto, ponieważ jest to parametr connect, wymaga specjalnego formatowania w następujący sposób: ;P WD= lpszPassword. Na przykład: ;P WD="Happy". (Wymagany jest średnik wiodący).

lpszLocale
Wyrażenie ciągu używane do określania kolejności sortowania na potrzeby tworzenia nazwy lpszDestName. Jeśli pominiesz ten argument, akceptując wartość dbLangGeneral domyślną (patrz poniżej), ustawienia regionalne nowej bazy danych są takie same jak stara baza danych. Dopuszczalne wartości:

  • dbLangGeneral Angielski, niemiecki, francuski, portugalski, włoski i nowoczesny hiszpański

  • dbLangArabic Arabski

  • dbLangCyrillic Rosyjski

  • dbLangCzech Czeski

  • dbLangDutch Holenderski

  • dbLangGreek Grecki

  • dbLangHebrew Hebrajski

  • dbLangHungarian Węgierski

  • dbLangIcelandic Islandzki

  • dbLangNordic Języki nordyckie (tylko aparat bazy danych Microsoft Jet w wersji 1.0)

  • dbLangNorwdan Norweski i duński

  • dbLangPolish Polski

  • dbLangSpanish Tradycyjny hiszpański

  • dbLangSwedfin Szwedzki i fiński

  • dbLangTurkish Turecki

nOpcje
Wskazuje co najmniej jedną opcję docelowej bazy danych lpszDestName. Jeśli pominiesz ten argument, akceptując wartość domyślną, lpszDestName ma to samo szyfrowanie i tę samą wersję co lpszSrcName. Możesz połączyć dbEncrypt opcję lub dbDecrypt z jedną z opcji wersji przy użyciu operatora bitowego OR. Możliwe wartości, które określają format bazy danych, a nie wersję aparatu bazy danych, to:

  • dbEncrypt Szyfruj bazę danych podczas kompaktowania.

  • dbDecrypt Odszyfruj bazę danych podczas kompaktowania.

  • dbVersion10 Utwórz bazę danych korzystającą z aparatu bazy danych Microsoft Jet w wersji 1.0 podczas kompaktowania.

  • dbVersion11 Utwórz bazę danych korzystającą z aparatu bazy danych Microsoft Jet w wersji 1.1 podczas kompaktowania.

  • dbVersion20 Utwórz bazę danych, która używa aparatu bazy danych Microsoft Jet w wersji 2.0 podczas kompaktowania.

  • dbVersion30 Utwórz bazę danych korzystającą z aparatu bazy danych Microsoft Jet w wersji 3.0 podczas kompaktowania.

Możesz użyć dbEncrypt argumentu opcji lub dbDecrypt w argumencie opcji, aby określić, czy chcesz zaszyfrować, czy odszyfrować bazę danych w miarę kompaktowania. Jeśli pominiesz stałą szyfrowania lub jeśli dołączysz zarówno dbDecrypt elementy , jak i dbEncrypt, lpszDestName ma to samo szyfrowanie co lpszSrcName. Możesz użyć jednej ze stałych wersji w argumencie opcji, aby określić wersję formatu danych dla skompaktowanej bazy danych. Ta stała ma wpływ tylko na wersję formatu danych .lpszDestName Można określić tylko jedną stałą wersji. Jeśli pominięto stałą wersję, lpszDestName będzie mieć taką samą wersję jak lpszSrcName. Można skompaktować lpszDestName tylko do wersji, która jest taka sama lub nowsza niż lpszSrcName.

Uwaga

Jeśli baza danych nie jest zaszyfrowana, istnieje możliwość, nawet w przypadku zaimplementowania zabezpieczeń użytkownika/hasła, aby bezpośrednio odczytać plik dysku binarnego, który stanowi bazę danych.

Uwagi

Podczas zmiany danych w bazie danych plik bazy danych może zostać rozdrobniony i używać więcej miejsca na dysku niż jest to konieczne. Okresowo należy skompaktować bazę danych, aby defragmentować plik bazy danych. Kompaktowana baza danych jest zwykle mniejsza. Możesz również zmienić kolejność sortowania, szyfrowanie lub wersję formatu danych podczas kopiowania i kompaktowania bazy danych.

Uwaga

Funkcja CompactDatabase składowa nie będzie poprawnie konwertować kompletnej bazy danych programu Microsoft Access z jednej wersji na inną. Tylko format danych jest konwertowany. Obiekty zdefiniowane przez program Microsoft Access, takie jak formularze i raporty, nie są konwertowane. Jednak dane są poprawnie konwertowane.

Napiwek

Możesz również użyć CompactDatabase polecenia , aby skopiować plik bazy danych.

Aby uzyskać więcej informacji na temat kompaktowania baz danych, zobacz temat "CompactDatabase Method" (Metoda CompactDatabase) w pomocy dao.

CDaoWorkspace::Create

Wywołaj tę funkcję składową, aby utworzyć nowy obiekt obszaru roboczego DAO i skojarzyć go z obiektem MFC CDaoWorkspace .

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

Parametry

lpszName
Ciąg zawierający maksymalnie 14 znaków, który unikatowo nazywa nowy obiekt obszaru roboczego. Musisz podać nazwę. Aby uzyskać powiązane informacje, zobacz temat "Name Property" (Nazwa właściwości) w pomocy dao.

lpszUserName
Nazwa użytkownika właściciela obszaru roboczego. Aby uzyskać informacje o wymaganiach, zobacz parametr lpszDefaultUser funkcji składowej SetDefaultUser . Aby uzyskać powiązane informacje, zobacz temat "UserName Property" (Właściwość UserName) w pomocy dao.

lpszPassword
Hasło dla nowego obiektu obszaru roboczego. Hasło może zawierać maksymalnie 14 znaków i może zawierać dowolny znak z wyjątkiem ASCII 0 (null). W hasłach jest rozróżniana wielkość liter. Aby uzyskać powiązane informacje, zobacz temat "Właściwość hasła" w Pomocy dao.

Uwagi

Ogólny proces tworzenia to:

  1. Konstruowanie obiektu CDaoWorkspace .

  2. Wywołaj funkcję składową obiektu Create , aby utworzyć bazowy obszar roboczy DAO. Musisz określić nazwę obszaru roboczego.

  3. Opcjonalnie wywołaj metodę Append , jeśli chcesz dodać obszar roboczy do kolekcji Obszary robocze aparatu bazy danych. Możesz pracować z obszarem roboczym bez dołączania go.

Po wywołaniu Create obiekt obszaru roboczego jest w stanie otwartym, gotowy do użycia. Połączenie nie jest wywoływane po .Open Create Nie wywołujesz Create polecenia , jeśli obszar roboczy już istnieje w kolekcji Obszary robocze. Create Inicjuje aparat bazy danych, jeśli jeszcze nie został zainicjowany dla aplikacji.

CDaoWorkspace::GetDatabaseCount

Wywołaj tę funkcję składową, aby pobrać liczbę obiektów bazy danych DAO w kolekcji Databases obszaru roboczego. Jest to liczba otwartych baz danych w obszarze roboczym.

short GetDatabaseCount();

Wartość zwracana

Liczba otwartych baz danych w obszarze roboczym.

Uwagi

GetDatabaseCount jest przydatna, jeśli musisz przeprowadzić pętlę we wszystkich zdefiniowanych bazach danych w kolekcji Bazy danych obszaru roboczego. Aby uzyskać informacje o danej bazie danych w kolekcji, zobacz GetDatabaseInfo. Typowym użyciem jest wywołanie GetDatabaseCount liczby otwartych baz danych, a następnie użycie tego numeru jako indeksu pętli dla powtarzających się wywołań metody GetDatabaseInfo.

CDaoWorkspace::GetDatabaseInfo

Wywołaj tę funkcję składową, aby uzyskać różne rodzaje informacji o otwartej bazie danych w obszarze roboczym.

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

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

Parametry

nIndex
Zerowy indeks obiektu bazy danych w kolekcji Bazy danych obszaru roboczego dla wyszukiwania według indeksu.

dbinfo
Odwołanie do obiektu CDaoDatabaseInfo zwracającego żądane informacje.

dwInfoOptions
Opcje określające, które informacje o bazie danych mają być pobierane. Dostępne opcje są wymienione tutaj wraz z tym, co powodują zwrócenie funkcji:

  • AFX_DAO_PRIMARY_INFO (domyślna) nazwa, możliwe do zaktualizowania, transakcje

  • AFX_DAO_SECONDARY_INFO podstawowe informacje oraz: wersja, sortowanie kolejności, limit czasu zapytania

  • AFX_DAO_ALL_INFO podstawowe i pomocnicze informacje oraz: Połącz

lpszName
Nazwa obiektu bazy danych dla wyszukiwania według nazwy. Nazwa jest ciągiem zawierającym maksymalnie 14 znaków, który unikatowo nazywa nowy obiekt obszaru roboczego.

Uwagi

Jedna wersja funkcji umożliwia wyszukiwanie bazy danych według indeksu. Druga wersja umożliwia wyszukiwanie bazy danych według nazwy.

Aby uzyskać opis informacji zwracanych w dbinfo, zobacz strukturę CDaoDatabaseInfo . Ta struktura zawiera elementy członkowskie, które odpowiadają elementom informacji wymienionych powyżej w opisie dwInfoOptions. Gdy żądasz informacji na jednym poziomie, uzyskasz również informacje dotyczące wszystkich poprzednich poziomów.

CDaoWorkspace::GetIniPath

Wywołaj tę funkcję składową, aby uzyskać lokalizację ustawień inicjowania aparatu bazy danych Microsoft Jet w rejestrze systemu Windows.

static CString PASCAL GetIniPath();

Wartość zwracana

Element CString zawierający lokalizację rejestru.

Uwagi

Możesz użyć lokalizacji, aby uzyskać informacje o ustawieniach aparatu bazy danych. Zwrócone informacje są w rzeczywistości nazwą podklucza rejestru.

Aby uzyskać powiązane informacje, zobacz tematy "IniPath Property" i "Dostosowywanie ustawień rejestru systemu Windows na potrzeby dostępu do danych" w Pomocy dao.

CDaoWorkspace::GetIsolateODBCTrans

Wywołaj tę funkcję składową, aby uzyskać bieżącą wartość właściwości DAO IsolateODBCTrans dla obszaru roboczego.

BOOL GetIsolateODBCTrans();

Wartość zwracana

Niezerowe, jeśli transakcje ODBC są izolowane; w przeciwnym razie 0.

Uwagi

W niektórych sytuacjach może być konieczne posiadanie wielu równoczesnych transakcji oczekujących na tę samą bazę danych ODBC. W tym celu należy otworzyć oddzielny obszar roboczy dla każdej transakcji. Należy pamiętać, że mimo że każdy obszar roboczy może mieć własne połączenie ODBC z bazą danych, powoduje to spowolnienie wydajności systemu. Ponieważ izolacja transakcji nie jest zwykle wymagana, połączenia ODBC z wielu obiektów obszaru roboczego otwieranych przez tego samego użytkownika są domyślnie współużytkowane.

Niektóre serwery ODBC, takie jak Microsoft SQL Server, nie zezwalają na jednoczesne transakcje na jednym połączeniu. Jeśli musisz mieć więcej niż jedną transakcję w czasie oczekiwania na taką bazę danych, ustaw właściwość IsolateODBCTrans na wartość TRUE w każdym obszarze roboczym, gdy tylko go otworzysz. Wymusza to oddzielne połączenie ODBC dla każdego obszaru roboczego.

Aby uzyskać powiązane informacje, zobacz temat "IsolateODBCTrans Property" (Właściwość IsolateODBCTrans) w pomocy języka DAO.

CDaoWorkspace::GetLoginTimeout

Wywołaj tę funkcję składową, aby uzyskać bieżącą wartość właściwości DAO LoginTimeout dla obszaru roboczego.

static short PASCAL GetLoginTimeout();

Wartość zwracana

Liczba sekund przed wystąpieniem błędu podczas próby zalogowania się do bazy danych ODBC.

Uwagi

Ta wartość reprezentuje liczbę sekund przed wystąpieniem błędu podczas próby zalogowania się do bazy danych ODBC. Domyślne ustawienie LoginTimeout wynosi 20 sekund. Gdy parametr LoginTimeout ma wartość 0, nie występuje limit czasu, a komunikacja ze źródłem danych może przestać odpowiadać.

Podczas próby zalogowania się do bazy danych ODBC, takiej jak Program Microsoft SQL Server, połączenie może zakończyć się niepowodzeniem w wyniku błędów sieciowych lub dlatego, że serwer nie jest uruchomiony. Zamiast czekać na połączenie domyślne 20 sekund, możesz określić czas oczekiwania aparatu bazy danych przed wystąpieniem błędu. Logowanie do serwera odbywa się niejawnie w ramach różnych zdarzeń, takich jak uruchamianie zapytania w zewnętrznej bazie danych serwera.

Aby uzyskać powiązane informacje, zobacz temat "LoginTimeout Property" (Właściwość LoginTimeout) w pomocy dao.

CDaoWorkspace::GetName

Wywołaj tę funkcję składową, aby uzyskać zdefiniowaną przez użytkownika nazwę obiektu obszaru roboczego DAO bazowego CDaoWorkspace obiektu.

CString GetName();

Wartość zwracana

Element CString zawierający zdefiniowaną przez użytkownika nazwę obiektu obszaru roboczego DAO.

Uwagi

Nazwa jest przydatna do uzyskiwania dostępu do obiektu obszaru roboczego DAO w kolekcji Obszary robocze aparatu bazy danych według nazwy.

Aby uzyskać powiązane informacje, zobacz temat "Name Property" (Nazwa właściwości) w pomocy dao.

CDaoWorkspace::GetUserName

Wywołaj tę funkcję składową, aby uzyskać nazwę właściciela obszaru roboczego.

CString GetUserName();

Wartość zwracana

Obiekt CString reprezentujący właściciela obiektu obszaru roboczego.

Uwagi

Aby uzyskać lub ustawić uprawnienia właściciela obszaru roboczego, wywołaj obiekt DAO bezpośrednio, aby sprawdzić ustawienie właściwości Uprawnienia; Określa to, jakie uprawnienia ma użytkownik. Aby pracować z uprawnieniami, potrzebujesz systemu. Plik MDA.

Aby uzyskać informacje dotyczące bezpośredniego wywoływania obiektu DAO, zobacz Technical Note 54 (Uwaga techniczna 54). Aby uzyskać powiązane informacje, zobacz temat "UserName Property" (Właściwość UserName) w pomocy dao.

CDaoWorkspace::GetVersion

Wywołaj tę funkcję składową, aby określić wersję używanego aparatu bazy danych Microsoft Jet.

static CString PASCAL GetVersion();

Wartość zwracana

Element CString wskazujący wersję aparatu bazy danych skojarzonego z obiektem.

Uwagi

Zwrócona wartość reprezentuje numer wersji w postaci "główna.pomocnicza"; na przykład "3.0". Numer wersji produktu (na przykład 3.0) składa się z numeru wersji (3), okresu i numeru wydania (0).

Aby uzyskać powiązane informacje, zobacz temat "Właściwość wersji" w Pomocy dao.

CDaoWorkspace::GetWorkspaceCount

Wywołaj tę funkcję składową, aby pobrać liczbę obiektów obszaru roboczego DAO w kolekcji Obszary robocze aparatu bazy danych.

short GetWorkspaceCount();

Wartość zwracana

Liczba otwartych obszarów roboczych w kolekcji Obszary robocze.

Uwagi

Ta liczba nie obejmuje żadnych otwartych obszarów roboczych, które nie są dołączane do kolekcji. GetWorkspaceCount jest przydatne, jeśli musisz przeprowadzić pętlę we wszystkich zdefiniowanych obszarach roboczych w kolekcji Obszary robocze. Aby uzyskać informacje o danym obszarze roboczym w kolekcji, zobacz GetWorkspaceInfo. Typowym użyciem jest wywołanie GetWorkspaceCount liczby otwartych obszarów roboczych, a następnie użycie tego numeru jako indeksu pętli w przypadku powtarzających się wywołań metody GetWorkspaceInfo.

CDaoWorkspace::GetWorkspaceInfo

Wywołaj tę funkcję składową, aby uzyskać różne rodzaje informacji o obszarze roboczym otwartym w sesji.

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

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

Parametry

nIndex
Zerowy indeks obiektu bazy danych w kolekcji Obszary robocze dla wyszukiwania według indeksu.

wkspcinfo
Odwołanie do obiektu CDaoWorkspaceInfo zwracającego żądane informacje.

dwInfoOptions
Opcje określające, które informacje o obszarze roboczym mają być pobierane. Dostępne opcje są wymienione tutaj wraz z tym, co powodują zwrócenie funkcji:

  • nazwa AFX_DAO_PRIMARY_INFO (domyślna)

  • AFX_DAO_SECONDARY_INFO podstawowe informacje oraz: Nazwa użytkownika

  • AFX_DAO_ALL_INFO podstawowe i pomocnicze informacje oraz: Izolowanie odBCTrans

lpszName
Nazwa obiektu obszaru roboczego dla wyszukiwania według nazwy. Nazwa jest ciągiem zawierającym maksymalnie 14 znaków, który unikatowo nazywa nowy obiekt obszaru roboczego.

Uwagi

Aby uzyskać opis informacji zwróconych w wkspcinfo, zobacz strukturę CDaoWorkspaceInfo. Ta struktura zawiera elementy członkowskie, które odpowiadają elementom informacji wymienionych powyżej w opisie dwInfoOptions. Gdy żądasz informacji na jednym poziomie, uzyskasz również informacje dotyczące poprzednich poziomów.

CDaoWorkspace::Idle

Wywołaj metodę Idle , aby zapewnić aparatowi bazy danych możliwość wykonywania zadań w tle, które mogą nie być aktualne z powodu intensywnego przetwarzania danych.

static void PASCAL Idle(int nAction = dbFreeLocks);

Parametry

nAction
Akcja do wykonania podczas przetwarzania bezczynności. Obecnie jedyną prawidłową akcją jest dbFreeLocks.

Uwagi

Jest to często prawdziwe w środowiskach wieloużytkownikowych, w których nie ma wystarczającego czasu przetwarzania w tle, aby zachować wszystkie rekordy w bieżącym zestawie rekordów.

Uwaga

Wywoływanie Idle nie jest konieczne w przypadku baz danych utworzonych w wersji 3.0 aparatu bazy danych Microsoft Jet. Używaj Idle tylko dla baz danych utworzonych we wcześniejszych wersjach.

Zazwyczaj blokady odczytu są usuwane, a dane w obiektach zestawu rekordów typu dynaset lokalnego są aktualizowane tylko wtedy, gdy nie występują żadne inne akcje (w tym ruchy myszy). Jeśli okresowo wywołujesz Idlemetodę , aparat bazy danych ma czas nadrobić zaległości w zadaniach przetwarzania w tle, zwalniając niepotrzebne blokady odczytu. Określanie stałej dbFreeLocks jako argument opóźnia przetwarzanie do momentu zwolnienia wszystkich blokad odczytu.

Ta funkcja składowa nie jest potrzebna w środowiskach pojedynczego użytkownika, chyba że uruchomiono wiele wystąpień aplikacji. Funkcja Idle składowa może zwiększyć wydajność w środowisku wieloużytkownika, ponieważ zmusza aparat bazy danych do opróżniania danych na dysk, zwalniając blokady pamięci. Blokady odczytu można również zwolnić, wykonując operacje w ramach transakcji.

Aby uzyskać powiązane informacje, zobacz temat "Idle Method" (Metoda bezczynności) w pomocy języka DAO.

CDaoWorkspace::IsOpen

Wywołaj tę funkcję składową, aby określić, czy CDaoWorkspace obiekt jest otwarty. Oznacza to, że obiekt MFC został zainicjowany przez wywołanie metody Open lub wywołanie metody Create.

BOOL IsOpen() const;

Wartość zwracana

Niezero, jeśli obiekt obszaru roboczego jest otwarty; w przeciwnym razie 0.

Uwagi

Możesz wywołać dowolną funkcję składową obszaru roboczego, który jest w stanie otwartym.

CDaoWorkspace::m_pDAOWorkspace

Wskaźnik do bazowego obiektu obszaru roboczego DAO.

Uwagi

Użyj tego elementu członkowskiego danych, jeśli potrzebujesz bezpośredniego dostępu do bazowego obiektu DAO. Interfejsy obiektu DAO można wywołać za pomocą tego wskaźnika.

Aby uzyskać informacje na temat uzyskiwania bezpośredniego dostępu do obiektów DAO, zobacz Technical Note 54 (Uwaga techniczna 54).

CDaoWorkspace::Open

Jawnie otwiera obiekt obszaru roboczego skojarzony z domyślnym obszarem roboczym dao.

virtual void Open(LPCTSTR lpszName = NULL);

Parametry

lpszName
Nazwa obiektu obszaru roboczego DAO do otwarcia — ciąg zawierający maksymalnie 14 znaków, który unikatowo nazywa obszar roboczy. Zaakceptuj wartość domyślną NULL, aby jawnie otworzyć domyślny obszar roboczy. Aby uzyskać informacje o wymaganiach dotyczących nazewnictwa, zobacz parametr lpszName dla polecenia Create. Aby uzyskać powiązane informacje, zobacz temat "Name Property" (Nazwa właściwości) w pomocy dao.

Uwagi

Po utworzeniu CDaoWorkspace obiektu wywołaj tę funkcję składową, aby wykonać jedną z czynności:

  • Jawnie otwórz domyślny obszar roboczy. Przekaż wartość NULL dla parametru lpszName.

  • Otwórz istniejący CDaoWorkspace obiekt, element członkowski kolekcji Obszary robocze według nazwy. Przekaż prawidłową nazwę istniejącego obiektu obszaru roboczego.

Open umieszcza obiekt obszaru roboczego w stanie otwartym, a także inicjuje aparat bazy danych, jeśli jeszcze nie został zainicjowany dla aplikacji.

Mimo że wiele CDaoWorkspace funkcji członkowskich można wywołać tylko po otwarciu obszaru roboczego, następujące funkcje składowe, które działają na akiecie bazy danych, są dostępne po utworzeniu obiektu języka C++, ale przed wywołaniem metody Open:

CDaoWorkspace::RepairDatabase

Wywołaj tę funkcję składową, jeśli musisz spróbować naprawić uszkodzoną bazę danych, która uzyskuje dostęp do aparatu bazy danych Microsoft Jet.

static void PASCAL RepairDatabase(LPCTSTR lpszName);

Parametry

lpszName
Ścieżka i nazwa pliku istniejącej bazy danych aparatu Microsoft Jet. Jeśli pominięto ścieżkę, przeszukiwany jest tylko bieżący katalog. Jeśli system obsługuje jednolitą konwencję nazewnictwa (UNC), możesz również określić ścieżkę sieciową, na przykład "\\\\MYSERVER\\MYSHARE\\MYDIR\\MYDB. MDB". (Podwójne ukośniki odwrotne są wymagane w ciągu ścieżki, ponieważ "\" jest znakiem ucieczki języka C++).

Uwagi

Przed jego naprawą należy zamknąć bazę danych lpszName . W środowisku wieloużytkownika inni użytkownicy nie mogą mieć otwartego elementu lpszName podczas naprawiania go. Jeśli nazwa lpszName nie jest zamknięta lub nie jest dostępna do wyłącznego użytku, wystąpi błąd.

Ta funkcja składowa próbuje naprawić bazę danych, która została oznaczona jako prawdopodobnie uszkodzona przez niekompletną operację zapisu. Taka sytuacja może wystąpić, jeśli aplikacja korzystająca z aparatu bazy danych Microsoft Jet jest nieoczekiwanie zamknięta z powodu awarii zasilania lub problemu sprzętowego komputera. Jeśli ukończysz operację i wywołasz funkcję Zamknij element członkowski lub zamkniesz aplikację w zwykły sposób, baza danych nie zostanie oznaczona jako prawdopodobnie uszkodzona.

Uwaga

Po naprawieniu bazy danych dobrym pomysłem jest również kompaktowanie jej za pomocą funkcji składowej CompactDatabase w celu defragmentacji pliku i odzyskania miejsca na dysku.

Aby uzyskać więcej informacji na temat naprawiania baz danych, zobacz temat "RepairDatabase Method" (Metoda RepairDatabase) w pomocy dao.

CDaoWorkspace::Rollback

Wywołaj tę funkcję składową, aby zakończyć bieżącą transakcję i przywrócić wszystkie bazy danych w obszarze roboczym do ich warunku przed rozpoczęciem transakcji.

void Rollback();

Uwagi

Uwaga

W obrębie jednego obiektu obszaru roboczego transakcje są zawsze globalne dla obszaru roboczego i nie są ograniczone tylko do jednej bazy danych ani zestawu rekordów. Jeśli wykonujesz operacje na więcej niż jednej bazie danych lub zestawie rekordów w ramach transakcji obszaru roboczego, Rollback przywraca wszystkie operacje na wszystkich tych bazach danych i zestawach rekordów.

Jeśli zamkniesz obiekt obszaru roboczego bez zapisywania lub wycofywania oczekujących transakcji, transakcje zostaną automatycznie wycofane. Jeśli wywołasz metodę CommitTrans lub Rollback bez pierwszego wywołania metody BeginTrans, wystąpi błąd.

Uwaga

Po rozpoczęciu transakcji aparat bazy danych rejestruje jego operacje w pliku przechowywanym w katalogu określonym przez zmienną środowiskową TEMP na stacji roboczej. Jeśli plik dziennika transakcji wyczerpa dostępny magazyn na dysku TEMP, aparat bazy danych spowoduje, że MFC zgłosi błąd CDaoException (błąd DAO 2004). W tym momencie, jeśli wywołasz CommitTransmetodę , nieokreślona liczba operacji zostanie zatwierdzona, ale pozostałe nieuzupełnione operacje zostaną utracone, a operacja musi zostać uruchomiona ponownie. Wywołanie Rollback powoduje wydanie dziennika transakcji i wycofanie wszystkich operacji w transakcji.

CDaoWorkspace::SetDefaultPassword

Wywołaj tę funkcję składową, aby ustawić domyślne hasło używane przez aparat bazy danych podczas tworzenia obiektu obszaru roboczego bez określonego hasła.

static void PASCAL SetDefaultPassword(LPCTSTR lpszPassword);

Parametry

lpszPassword
Domyślne hasło. Hasło może zawierać maksymalnie 14 znaków i może zawierać dowolny znak z wyjątkiem ASCII 0 (null). W hasłach jest rozróżniana wielkość liter.

Uwagi

Domyślne hasło, które ustawiono, dotyczy nowych obszarów roboczych tworzonych po wywołaniu. Podczas tworzenia kolejnych obszarów roboczych nie trzeba określać hasła w wywołaniu Tworzenie .

Aby użyć tej funkcji składowej:

  1. Skonstruuj CDaoWorkspace obiekt, ale nie wywołuje metody Create.

  2. Wywołaj SetDefaultPassword metodę i, jeśli chcesz, SetDefaultUser.

  3. Wywołaj Create obiekt tego obszaru roboczego lub kolejne bez określania hasła.

Domyślnie właściwość DefaultUser jest ustawiona na wartość "admin", a właściwość DefaultPassword jest ustawiona na pusty ciąg ("").

Aby uzyskać więcej informacji na temat zabezpieczeń, zobacz temat "Permissions Property" (Właściwość uprawnień) w pomocy dotyczącej języka DAO. Aby uzyskać powiązane informacje, zobacz tematy "DefaultPassword Property" i "DefaultUser Property" w Pomocy DAO.

CDaoWorkspace::SetDefaultUser

Wywołaj tę funkcję składową, aby ustawić domyślną nazwę użytkownika używaną przez aparat bazy danych podczas tworzenia obiektu obszaru roboczego bez określonej nazwy użytkownika.

static void PASCAL SetDefaultUser(LPCTSTR lpszDefaultUser);

Parametry

lpszDefaultUser
Domyślna nazwa użytkownika. Nazwa użytkownika może mieć długość od 1 do 20 znaków i zawierać znaki alfabetyczne, znaki wyróżniające, liczby, spacje i symbole z wyjątkiem: " (znaki cudzysłowu), / (ukośnik odwrotny \ ), (nawiasy : klamrowe), [ ] (dwukropek), | (znak < mniejszy niż znak), (znak większy niż znak), + (znak = plus), (znak równości), ; (średnik), (przecinek), , (znak > zapytania), (gwiazdka), * spacje wiodące i znaki sterujące (od ASCII 00 do ASCII 31). Aby uzyskać powiązane informacje, zobacz temat "UserName Property" (Właściwość UserName) w pomocy dao.

Uwagi

Domyślna nazwa użytkownika, która została ustawiona, ma zastosowanie do nowych obszarów roboczych tworzonych po wywołaniu. Podczas tworzenia kolejnych obszarów roboczych nie trzeba określać nazwy użytkownika w wywołaniu Tworzenie .

Aby użyć tej funkcji składowej:

  1. Skonstruuj CDaoWorkspace obiekt, ale nie wywołuje metody Create.

  2. Zadzwoń SetDefaultUser i, jeśli chcesz, SetDefaultPassword.

  3. Wywołaj Create obiekt tego obszaru roboczego lub kolejne bez określania nazwy użytkownika.

Domyślnie właściwość DefaultUser jest ustawiona na wartość "admin", a właściwość DefaultPassword jest ustawiona na pusty ciąg ("").

Aby uzyskać powiązane informacje, zobacz tematy "DefaultUser Property" i "DefaultPassword Property" w Pomocy dao.

CDaoWorkspace::SetIniPath

Wywołaj tę funkcję składową, aby określić lokalizację ustawień rejestru systemu Windows dla aparatu bazy danych Microsoft Jet.

static void PASCAL SetIniPath(LPCTSTR lpszRegistrySubKey);

Parametry

lpszRegistrySubkey
Ciąg zawierający nazwę podklucza rejestru systemu Windows dla lokalizacji ustawień aparatu bazy danych Microsoft Jet lub parametrów wymaganych do zainstalowania baz danych ISAM.

Uwagi

Wywołaj połączenie SetIniPath tylko wtedy, gdy musisz określić ustawienia specjalne. Aby uzyskać więcej informacji, zobacz temat "IniPath Property" (Właściwość IniPath) w pomocy języka DAO.

Uwaga

Wywołaj wywołanie SetIniPath podczas instalacji aplikacji, a nie wtedy, gdy aplikacja jest uruchomiona. SetIniPath należy wywołać przed otwarciem wszystkich obszarów roboczych, baz danych lub zestawów rekordów; W przeciwnym razie MFC zgłasza wyjątek.

Za pomocą tego mechanizmu można skonfigurować aparat bazy danych z ustawieniami rejestru udostępnianymi przez użytkownika. Zakres tego atrybutu jest ograniczony do aplikacji i nie można go zmienić bez ponownego uruchamiania aplikacji.

CDaoWorkspace::SetIsolateODBCTrans

Wywołaj tę funkcję składową, aby ustawić wartość właściwości DAO IsolateODBCTrans dla obszaru roboczego.

void SetIsolateODBCTrans(BOOL bIsolateODBCTrans);

Parametry

bIsolateODBCTrans
Przekaż wartość TRUE, jeśli chcesz rozpocząć izolowanie transakcji ODBC. Przekaż wartość FALSE, jeśli chcesz zatrzymać izolowanie transakcji ODBC.

Uwagi

W niektórych sytuacjach może być konieczne posiadanie wielu równoczesnych transakcji oczekujących na tę samą bazę danych ODBC. W tym celu należy otworzyć oddzielny obszar roboczy dla każdej transakcji. Mimo że każdy obszar roboczy może mieć własne połączenie ODBC z bazą danych, spowalnia to wydajność systemu. Ponieważ izolacja transakcji nie jest zwykle wymagana, połączenia ODBC z wielu obiektów obszaru roboczego otwieranych przez tego samego użytkownika są domyślnie współużytkowane.

Niektóre serwery ODBC, takie jak Microsoft SQL Server, nie zezwalają na jednoczesne transakcje na jednym połączeniu. Jeśli musisz mieć więcej niż jedną transakcję w czasie oczekiwania na taką bazę danych, ustaw właściwość IsolateODBCTrans na wartość TRUE w każdym obszarze roboczym, gdy tylko go otworzysz. Wymusza to oddzielne połączenie ODBC dla każdego obszaru roboczego.

CDaoWorkspace::SetLoginTimeout

Wywołaj tę funkcję składową, aby ustawić wartość właściwości DAO LoginTimeout dla obszaru roboczego.

static void PASCAL SetLoginTimeout(short nSeconds);

Parametry

nSeconds
Liczba sekund przed wystąpieniem błędu podczas próby zalogowania się do bazy danych ODBC.

Uwagi

Ta wartość reprezentuje liczbę sekund przed wystąpieniem błędu podczas próby zalogowania się do bazy danych ODBC. Domyślne ustawienie LoginTimeout wynosi 20 sekund. Gdy parametr LoginTimeout ma wartość 0, nie występuje limit czasu, a komunikacja ze źródłem danych może przestać odpowiadać.

Podczas próby zalogowania się do bazy danych ODBC, takiej jak Program Microsoft SQL Server, połączenie może zakończyć się niepowodzeniem w wyniku błędów sieciowych lub dlatego, że serwer nie jest uruchomiony. Zamiast czekać na połączenie domyślne 20 sekund, możesz określić czas oczekiwania aparatu bazy danych przed wystąpieniem błędu. Logowanie na serwerze odbywa się niejawnie w ramach wielu różnych zdarzeń, takich jak uruchomienie zapytania w zewnętrznej bazie danych serwera. Wartość limitu czasu jest określana przez bieżące ustawienie właściwości LoginTimeout.

Aby uzyskać powiązane informacje, zobacz temat "LoginTimeout Property" (Właściwość LoginTimeout) w pomocy dao.

Zobacz też

CObject Klasa
Wykres hierarchii
CDaoDatabase Klasa
CDaoRecordset Klasa
CDaoTableDef Klasa
CDaoQueryDef Klasa
CDaoException Klasa