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ącegoCDaoWorkspace
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średnictwemCDaoDatabase
elementu członkowskiego danych.Podobnie, jeśli utworzysz
CDaoRecordset
obiekt bez podawania wskaźnika doCDaoDatabase
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 roboczegoCDaoRecordset
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
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 BeginTrans
metody 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 metodyCreate
moż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ńskidbLangArabic
ArabskidbLangCyrillic
RosyjskidbLangCzech
CzeskidbLangDutch
HolenderskidbLangGreek
GreckidbLangHebrew
HebrajskidbLangHungarian
WęgierskidbLangIcelandic
IslandzkidbLangNordic
Języki nordyckie (tylko aparat bazy danych Microsoft Jet w wersji 1.0)dbLangNorwdan
Norweski i duńskidbLangPolish
PolskidbLangSpanish
Tradycyjny hiszpańskidbLangSwedfin
Szwedzki i fińskidbLangTurkish
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:
Konstruowanie obiektu CDaoWorkspace .
Wywołaj funkcję składową obiektu
Create
, aby utworzyć bazowy obszar roboczy DAO. Musisz określić nazwę obszaru roboczego.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 Idle
metodę , 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 CommitTrans
metodę , 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:
Skonstruuj
CDaoWorkspace
obiekt, ale nie wywołuje metodyCreate
.Wywołaj
SetDefaultPassword
metodę i, jeśli chcesz, SetDefaultUser.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:
Skonstruuj
CDaoWorkspace
obiekt, ale nie wywołuje metodyCreate
.Zadzwoń
SetDefaultUser
i, jeśli chcesz, SetDefaultPassword.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