CDaoWorkspace – třída
Spravuje pojmenovanou relaci databáze chráněnou heslem od přihlášení k logffu jediným uživatelem. Rozhraní DAO se podporuje prostřednictvím Office 2013. DAO 3.6 je konečná verze a je považována za za zastaralou.
Syntaxe
class CDaoWorkspace : public CObject
Členové
Veřejné konstruktory
Jméno | popis |
---|---|
CDaoWorkspace::CDaoWorkspace | Vytvoří objekt pracovního prostoru. Potom zavolejte Create nebo Open . |
Veřejné metody
Jméno | popis |
---|---|
CDaoWorkspace::Append | Připojí nově vytvořený pracovní prostor do kolekce Pracovních prostorů databázového stroje. |
CDaoWorkspace::BeginTrans | Zahájí novou transakci, která se vztahuje na všechny databáze otevřené v pracovním prostoru. |
CDaoWorkspace::Close | Zavře pracovní prostor a všechny objekty, které obsahuje. Čekající transakce se vrátí zpět. |
CDaoWorkspace::CommitTrans | Dokončí aktuální transakci a uloží změny. |
CDaoWorkspace::CompactDatabase | Zkomprimuje (nebo duplikuje) databázi. |
CDaoWorkspace::Create | Vytvoří nový objekt pracovního prostoru DAO. |
CDaoWorkspace::GetDatabaseCount | Vrátí počet databázových objektů DAO v kolekci Databází pracovního prostoru. |
CDaoWorkspace::GetDatabaseInfo | Vrátí informace o zadané databázi DAO definované v kolekci Databáze pracovního prostoru. |
CDaoWorkspace::GetIniPath | Vrátí umístění nastavení inicializace databázového stroje Microsoft Jet v registru Systému Windows. |
CDaoWorkspace::GetIsolateODBCTrans | Vrátí hodnotu, která označuje, zda více transakcí, které zahrnují stejný zdroj dat ODBC jsou izolované prostřednictvím vynucených více připojení ke zdroji dat. |
CDaoWorkspace::GetLoginTimeout | Vrátí počet sekund před chybou, když se uživatel pokusí přihlásit k databázi ODBC. |
CDaoWorkspace::GetName | Vrátí uživatelem definovaný název objektu pracovního prostoru. |
CDaoWorkspace::GetUserName | Vrátí uživatelské jméno zadané při vytvoření pracovního prostoru. Toto je název vlastníka pracovního prostoru. |
CDaoWorkspace::GetVersion | Vrátí řetězec, který obsahuje verzi databázového stroje přidruženého k pracovnímu prostoru. |
CDaoWorkspace::GetWorkspaceCount | Vrátí počet objektů pracovního prostoru DAO v kolekci Pracovních prostorů databázového stroje. |
CDaoWorkspace::GetWorkspaceInfo | Vrátí informace o zadaném pracovním prostoru DAO definovaném v kolekci Pracovních prostorů databázového stroje. |
CDaoWorkspace::Idle | Umožňuje databázovému stroji provádět úlohy na pozadí. |
CDaoWorkspace::IsOpen | Vrátí nenulové hodnoty, pokud je pracovní prostor otevřený. |
CDaoWorkspace::Open | Explicitně otevře objekt pracovního prostoru přidružený k výchozímu pracovnímu prostoru DAO. |
CDaoWorkspace::RepairDatabase | Pokusí se opravit poškozenou databázi. |
CDaoWorkspace::Rollback | Ukončí aktuální transakci a neuloží změny. |
CDaoWorkspace::SetDefaultPassword | Nastaví heslo, které databázový stroj používá při vytváření objektu pracovního prostoru bez konkrétního hesla. |
CDaoWorkspace::SetDefaultUser | Nastaví uživatelské jméno, které databázový stroj používá při vytvoření objektu pracovního prostoru bez konkrétního uživatelského jména. |
CDaoWorkspace::SetIniPath | Nastaví umístění nastavení inicializace databázového stroje Microsoft Jet v registru Windows. |
CDaoWorkspace::SetIsolateODBCTrans | Určuje, zda více transakcí, které zahrnují stejný zdroj dat ODBC jsou izolované vynucením více připojení ke zdroji dat. |
CDaoWorkspace::SetLoginTimeout | Nastaví počet sekund před chybou, když se uživatel pokusí přihlásit ke zdroji dat ODBC. |
Veřejné datové členy
Jméno | popis |
---|---|
CDaoWorkspace::m_pDAOWorkspace | Odkazuje na příslušný objekt pracovního prostoru DAO. |
Poznámky
Ve většině případů nebudete potřebovat více pracovních prostorů a nebudete muset vytvářet explicitní objekty pracovního prostoru; Když otevřete objekty databáze a sady záznamů, používají výchozí pracovní prostor DAO. V případě potřeby ale můžete spustit více relací najednou vytvořením dalších objektů pracovního prostoru. Každý objekt pracovního prostoru může obsahovat více otevřených databázových objektů ve vlastní kolekci Databáze. V prostředí MFC je pracovní prostor primárně správcem transakcí, který určuje sadu otevřených databází ve stejném "transakčním prostoru".
Poznámka
Databázové třídy DAO se liší od databázových tříd MFC založených na Připojení ivity (ODBC). Všechny názvy databázových tříd DAO mají předponu CDao. Obecně platí, že třídy MFC založené na rozhraní DAO jsou schopny více než třídy MFC založené na rozhraní ODBC. Třídy založené na rozhraní DAO přistupují k datům prostřednictvím databázového stroje Microsoft Jet, včetně ovladačů ODBC. Podporují také operace jazyka DDL (Data Definition Language), například vytváření databází a přidávání tabulek a polí prostřednictvím tříd, aniž by bylo nutné přímo volat DAO.
Funkce
Třída CDaoWorkspace
poskytuje následující:
V případě potřeby explicitní přístup k výchozímu pracovnímu prostoru vytvořenému inicializací databázového stroje. Výchozí pracovní prostor DAO obvykle používáte implicitně vytvořením objektů databáze a sady záznamů.
Transakční prostor, ve kterém se transakce vztahují na všechny databáze otevřené v pracovním prostoru. Můžete vytvořit další pracovní prostory pro správu samostatných prostorů transakcí.
Rozhraní pro mnoho vlastností základního databázového stroje Microsoft Jet (viz statické členské funkce). Otevření nebo vytvoření pracovního prostoru nebo volání statické členské funkce před otevřením nebo vytvořením inicializuje databázový stroj.
Přístup k kolekci Pracovních prostorů databázového stroje, která ukládá všechny aktivní pracovní prostory, které byly k ní připojeny. Můžete také vytvářet pracovní prostory a pracovat s nimi, aniž byste je připojili k kolekci.
Zabezpečení
MFC neimplementuje kolekce Users and Groups v rozhraní DAO, které se používají pro řízení zabezpečení. Pokud tyto aspekty DAO potřebujete, musíte je naprogramovat sami prostřednictvím přímých volání rozhraní DAO. Informace naleznete v technické poznámce 54.
Využití
Třídu můžete použít CDaoWorkspace
k:
Explicitně otevřete výchozí pracovní prostor.
Použití výchozího pracovního prostoru je obvykle implicitní – když otevřete nové objekty CDaoDatabase nebo CDaoRecordset . Možná k němu ale budete muset přistupovat explicitně – například pro přístup k vlastnostem databázového stroje nebo ke kolekci Pracovních prostorů. Viz část Implicitní použití výchozího pracovního prostoru níže.
Vytvořte nové pracovní prostory. Pokud je chcete přidat do kolekce Pracovních prostorů, zavolejte připojit .
Otevřete existující pracovní prostor v kolekci Pracovních prostorů.
Vytvoření nového pracovního prostoru, který ještě v kolekci Pracovních prostorů neexistuje, je popsáno v části Vytvořit členovou funkci. Objekty pracovního prostoru se neuchovávají žádným způsobem mezi relacemi modulu datababase. Pokud aplikace staticky propojí mfc, ukončete aplikaci tak, že neinicializuje databázový stroj. Pokud se vaše aplikace dynamicky propojí s mfc, databázový stroj není inicializován při uvolnění knihovny MFC DLL.
Explicitní otevření výchozího pracovního prostoru nebo otevření existujícího pracovního prostoru v kolekci Pracovních prostorů je popsáno v rámci funkce Otevřít člena.
Ukončete relaci pracovního prostoru zavřením pracovního prostoru pomocí členské funkce Zavřít . Close
zavře všechny databáze, které jste předtím nezavřeli, a vrátí zpět všechny nepotvrzené transakce.
Transakce
DAO spravuje transakce na úrovni pracovního prostoru; a proto transakce v pracovním prostoru s více otevřenými databázemi platí pro všechny databáze. Pokud mají například dvě databáze nepotvrzené aktualizace a voláte CommitTrans, všechny aktualizace se potvrdí. Pokud chcete omezit transakce na jednu databázi, potřebujete pro ni samostatný objekt pracovního prostoru.
Implicitní použití výchozího pracovního prostoru
MFC implicitně používá výchozí pracovní prostor DAO za následujících okolností:
Pokud vytvoříte nový
CDaoDatabase
objekt, ale neprojdete to prostřednictvím existujícíhoCDaoWorkspace
objektu, mfc vytvoří dočasný objekt pracovního prostoru za vás, který odpovídá výchozímu pracovnímu prostoru DAO. Pokud to uděláte u více databází, všechny databázové objekty jsou přidružené k výchozímu pracovnímu prostoru. K pracovnímu prostoru databáze můžete přistupovat prostřednictvím datového členaCDaoDatabase
.Podobně pokud vytvoříte
CDaoRecordset
objekt bez zadání ukazatele naCDaoDatabase
objekt, MFC vytvoří dočasný databázový objekt a objekt dočasného pracovního prostoru. K databázi sady záznamů a nepřímo jeho pracovnímu prostoru můžete přistupovat prostřednictvím datového členaCDaoRecordset
.
Jiné operace
K dispozici jsou také další databázové operace, například oprava poškozené databáze nebo komprimace databáze.
Informace o přímém volání DAO a o zabezpečení DAO naleznete v technické poznámce 54.
Hierarchie dědičnosti
CDaoWorkspace
Požadavky
Hlavička: afxdao.h
CDaoWorkspace::Append
Volání této členské funkce po volání create.
virtual void Append();
Poznámky
Append
připojí nově vytvořený objekt pracovního prostoru do kolekce Pracovních prostorů databázového stroje. Pracovní prostory se neuchovávají mezi relacemi databázového stroje; jsou uloženy pouze v paměti, ne na disku. Není nutné připojit pracovní prostor; pokud to neuděláte, můžete ho přesto použít.
Připojený pracovní prostor zůstane v kolekci Pracovních prostorů v aktivním otevřeném stavu, dokud nevoláte jeho funkci Zavřít člena.
Související informace najdete v tématu "Metoda připojení" v nápovědě k rozhraní DAO.
CDaoWorkspace::BeginTrans
Voláním této členské funkce zahájíte transakci.
void BeginTrans();
Poznámky
Po volání BeginTrans
se aktualizace dat nebo struktury databáze projeví při potvrzení transakce. Vzhledem k tomu, že pracovní prostor definuje jeden transakční prostor, transakce se vztahuje na všechny otevřené databáze v pracovním prostoru. Transakce můžete dokončit dvěma způsoby:
Volání CommitTrans členské funkce potvrzení transakce a uložení změn do zdroje dat.
Nebo voláním členské funkce Rollback zrušit transakci.
Zavření objektu pracovního prostoru nebo databázového objektu, zatímco transakce čeká na vrácení všech čekajících transakcí.
Pokud potřebujete izolovat transakce v jednom zdroji dat ODBC od těch v jiném zdroji dat ODBC, viz SetIsolateODBCTrans členské funkce.
CDaoWorkspace::CDaoWorkspace
CDaoWorkspace
Vytvoří objekt.
CDaoWorkspace();
Poznámky
Po vytvoření objektu C++ máte dvě možnosti:
Voláním členské funkce Otevřít objekt otevřete výchozí pracovní prostor nebo otevřete existující objekt v kolekci Pracovních prostorů.
Nebo zavolejte funkci Vytvořit člena objektu a vytvořte nový objekt pracovního prostoru DAO. Tím se explicitně spustí nová relace pracovního prostoru, na kterou můžete odkazovat prostřednictvím objektu
CDaoWorkspace
. Po volání můžete volatCreate
Připojit, pokud chcete přidat pracovní prostor do kolekce Pracovních prostorů databázového stroje.
Informace o tom, kdy potřebujete explicitně vytvořit CDaoWorkspace
objekt, najdete v přehledu třídy pro CDaoWorkspace. Pracovní prostory vytvořené implicitně použijete při otevření objektu CDaoDatabase bez zadání pracovního prostoru nebo při otevření objektu CDaoRecordset bez zadání databázového objektu. Objekty DAO mfc vytvořené tímto způsobem používají výchozí pracovní prostor DAO, který se vytvoří jednou a znovu použije.
Pokud chcete uvolnit pracovní prostor a jeho obsažené objekty, zavolejte funkci Zavřít člena objektu pracovního prostoru.
CDaoWorkspace::Close
Voláním této členské funkce zavřete objekt pracovního prostoru.
virtual void Close();
Poznámky
Zavření otevřeného objektu pracovního prostoru uvolní základní objekt DAO a pokud je pracovní prostor členem kolekce Pracovní prostory, odebere ho z kolekce. Volání Close
je dobrým programovacím postupem.
Upozornění
Zavření objektu pracovního prostoru zavře všechny otevřené databáze v pracovním prostoru. Výsledkem jsou všechny sady záznamů otevřené také v databázích, které se zavírají, a všechny čekající úpravy nebo aktualizace se vrátí zpět. Související informace naleznete v CDaoDatabase::Close, CDaoRecordset::Close, CDaoTableDef::Close a CDaoQueryDef::Close členské funkce.
Objekty pracovního prostoru nejsou trvalé; existují pouze v době, kdy na ně existují odkazy. To znamená, že když relace databázového stroje skončí, pracovní prostor a jeho kolekce Databáze se neuchovávají. Je nutné je znovu vytvořit pro další relaci opětovným otevřením pracovního prostoru a databází.
Související informace najdete v tématu "Zavřít metodu" v nápovědě k DAO.
CDaoWorkspace::CommitTrans
Voláním této členské funkce potvrďte transakci – uložte skupinu úprav a aktualizace jedné nebo více databází v pracovním prostoru.
void CommitTrans();
Poznámky
Transakce se skládá z řady změn dat databáze nebo její struktury, počínaje voláním BeginTrans. Po dokončení transakce ji buď potvrďte, nebo ji vraťte zpět (zrušte změny) vrácením zpět. Ve výchozím nastavení se aktualizace záznamů bez transakcí potvrdí okamžitě. Volání BeginTrans
způsobí zpoždění aktualizací, dokud nebudete volat CommitTrans
.
Upozornění
V rámci jednoho pracovního prostoru jsou transakce vždy globální pro pracovní prostor a nejsou omezeny pouze na jednu databázi nebo sadu záznamů. Pokud provádíte operace s více než jednou databází nebo sadou záznamů v rámci transakce pracovního prostoru, CommitTrans
potvrdí všechny čekající aktualizace a Rollback
obnoví všechny operace s těmito databázemi a sadami záznamů.
Když zavřete databázi nebo pracovní prostor s čekajícími transakcemi, všechny transakce se vrátí zpět.
Poznámka
Nejedná se o mechanismus dvoufázového potvrzení. Pokud se jedna aktualizace nepodaří potvrdit, ostatní se stále potvrdí.
CDaoWorkspace::CompactDatabase
Voláním této členské funkce zkomprimuje zadanou funkci Microsoft Jet (. Databáze 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
Název existující, uzavřené databáze. Může to být úplná cesta a název souboru, například C:\\MYDB. MDB". Pokud má název souboru příponu, musíte ho zadat. Pokud vaše síť podporuje jednotné zásady vytváření názvů (UNC), můžete také zadat síťovou cestu, například \\\MYSERVER\\MYSHARE\\MYDIR\\MYDB. MDB". (V řetězcích cesty jsou vyžadována dvojitá zpětná lomítka, protože znak "\" je řídicí znak jazyka C++.)
lpszDestName
Úplná cesta komprimované databáze, kterou vytváříte. Můžete také zadat síťovou cestu jako lpszSrcName. Argument lpszDestName nelze použít k určení stejného databázového souboru jako lpszSrcName.
lpszPassword
Heslo, které se používá, když chcete komprimovat databázi chráněnou heslem. Všimněte si, že pokud používáte verzi CompactDatabase
, která přebírá heslo, musíte zadat všechny parametry. Vzhledem k tomu, že se jedná o parametr connect, vyžaduje speciální formátování následujícím způsobem: ;P WD= lpszPassword. Příklad: ;P WD="Happy". (Je vyžadován počáteční středník.)
lpszLocale
Řetězcový výraz použitý k určení pořadí kolace pro vytvoření lpszDestName. Pokud tento argument vynecháte tím, že přijmete výchozí hodnotu dbLangGeneral
(viz níže), národní prostředí nové databáze je stejné jako národní prostředí staré databáze. Možné hodnoty jsou:
dbLangGeneral
Angličtina, němčina, francouzština, portugalština, italština a moderní španělštinadbLangArabic
ArabštinadbLangCyrillic
RuštinadbLangCzech
ČeštinadbLangDutch
HolandštinadbLangGreek
ŘečtinadbLangHebrew
HebrejštinadbLangHungarian
MaďarštinadbLangIcelandic
IslandštinadbLangNordic
Severské jazyky (pouze databázový stroj Microsoft Jet verze 1.0)dbLangNorwdan
Norština a dánštinadbLangPolish
PolštinadbLangSpanish
Tradiční španělštinadbLangSwedfin
Švédština a finštinadbLangTurkish
Turečtina
nOptions
Označuje jednu nebo více možností pro cílovou databázi lpszDestName. Pokud tento argument vynecháte přijetím výchozí hodnoty, bude mít lpszDestName stejné šifrování a stejnou verzi jako lpszSrcName. Tuto možnost nebo dbDecrypt
možnost můžete kombinovat dbEncrypt
s jednou z možností verze pomocí bitového operátoru OR. Možné hodnoty, které určují formát databáze, nikoli verzi databázového stroje, jsou:
dbEncrypt
Zašifrujte databázi při komprimování.dbDecrypt
Dešifrujte databázi při komprimování.dbVersion10
Vytvořte databázi, která při komprimování používá databázový stroj Microsoft Jet verze 1.0.dbVersion11
Vytvořte databázi, která při komprimování používá databázový stroj Microsoft Jet verze 1.1.dbVersion20
Vytvořte databázi, která používá databázový stroj Microsoft Jet verze 2.0 při komprimování.dbVersion30
Vytvořte databázi, která při komprimování používá databázový stroj Microsoft Jet verze 3.0.
Argumentem možností můžete dbEncrypt
dbDecrypt
určit, jestli se má databáze zašifrovat nebo dešifrovat při komprimování. Pokud vynecháte šifrovací konstantu nebo pokud zahrnete obě dbDecrypt
a dbEncrypt
, lpszDestName bude mít stejné šifrování jako lpszSrcName. Pomocí jedné z konstant verze v argumentu možností můžete určit verzi datového formátu pro komprimovanou databázi. Tato konstanta ovlivňuje pouze verzi datového formátu lpszDestName. Můžete zadat pouze jednu konstantu verze. Pokud vynecháte konstantu verze, bude mít lpszDestName stejnou verzi jako lpszSrcName. Můžete komprimovat lpszDestName pouze na verzi, která je stejná nebo novější než lpszSrcName.
Upozornění
Pokud databáze není zašifrovaná, je možné, i když implementujete zabezpečení uživatele nebo hesla, přímo číst binární diskový soubor, který tvoří databázi.
Poznámky
Když měníte data v databázi, může se soubor databáze fragmentovat a používat více místa na disku, než je potřeba. Pravidelně byste měli databázi zkomprimovat a defragmentovat soubor databáze. Komprimovaná databáze je obvykle menší. Při kopírování a komprimaci databáze můžete také změnit pořadí řazení, šifrování nebo verzi datového formátu.
Upozornění
Členová CompactDatabase
funkce nebude správně převádět úplnou databázi Aplikace Microsoft Access z jedné verze na jinou. Převede se pouze datový formát. Objekty definované aplikací Microsoft Access, jako jsou formuláře a sestavy, se nepřevádějí. Data se ale správně převedou.
Tip
Můžete také použít CompactDatabase
ke kopírování souboru databáze.
Další informace o komprimování databází naleznete v tématu "CompactDatabase Method" v nápovědě k DAO.
CDaoWorkspace::Create
Voláním této členské funkce vytvoříte nový objekt pracovního prostoru DAO a přidružíte ho k objektu MFC CDaoWorkspace
.
virtual void Create(
LPCTSTR lpszName,
LPCTSTR lpszUserName,
LPCTSTR lpszPassword);
Parametry
lpszName
Řetězec s až 14 znaky, který jednoznačně pojmenuje nový objekt pracovního prostoru. Musíte zadat název. Související informace najdete v tématu "Vlastnost názvu" v nápovědě k DAO.
lpszUserName
Uživatelské jméno vlastníka pracovního prostoru. Požadavky naleznete v lpszDefaultUser parametru SetDefaultUser členské funkce. Související informace najdete v tématu Vlastnost UserName v nápovědě k dao.
lpszPassword
Heslo pro nový objekt pracovního prostoru. Heslo může mít délku až 14 znaků a může obsahovat libovolný znak kromě ASCII 0 (null). V heslech se rozlišují velká a malá písmena. Související informace najdete v tématu "Vlastnost hesla" v nápovědě k DAO.
Poznámky
Celkový proces vytváření je následující:
Vytvoření objektu CDaoWorkspace
Voláním členské funkce objektu
Create
vytvořte podkladový pracovní prostor DAO. Musíte zadat název pracovního prostoru.Pokud chcete přidat pracovní prostor do kolekce Pracovních prostorů databázového stroje, můžete volitelně volat Připojit . S pracovním prostorem můžete pracovat bez jeho připojení.
Create
Po volání je objekt pracovního prostoru v otevřeném stavu připravený k použití. Nezavoláte Open
po Create
. Pokud již pracovní prostor existuje v kolekci Pracovních prostorů, nezavoláte Create
. Create
inicializuje databázový stroj, pokud ještě nebyl inicializován pro vaši aplikaci.
CDaoWorkspace::GetDatabaseCount
Voláním této členské funkce načtěte počet databázových objektů DAO v kolekci Databází pracovního prostoru – počet otevřených databází v pracovním prostoru.
short GetDatabaseCount();
Vrácená hodnota
Počet otevřených databází v pracovním prostoru
Poznámky
GetDatabaseCount
je užitečné, pokud potřebujete procházet všechny definované databáze v kolekci databází pracovního prostoru. Informace o dané databázi v kolekci získáte v tématu GetDatabaseInfo. Typickým použitím je volání GetDatabaseCount
počtu otevřených databází a následné použití tohoto čísla jako index smyčky pro opakované volání GetDatabaseInfo
.
CDaoWorkspace::GetDatabaseInfo
Voláním této členské funkce získáte různé druhy informací o databázi otevřené v pracovním prostoru.
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
Nulový index databázového objektu v kolekci Databáze pracovního prostoru pro vyhledávání podle indexu.
dbinfo
Odkaz na CDaoDatabaseInfo objekt, který vrací požadované informace.
dwInfoOptions
Možnosti, které určují, které informace o databázi se mají načíst. Dostupné možnosti jsou zde uvedeny spolu s tím, co způsobí vrácení funkce:
AFX_DAO_PRIMARY_INFO (výchozí) název, aktualizovatelný, transakce
AFX_DAO_SECONDARY_INFO primární informace plus: verze, řazení pořadí, vypršení časového limitu dotazu
AFX_DAO_ALL_INFO primární a sekundární informace plus: Připojení
lpszName
Název databázového objektu pro vyhledání podle názvu. Název je řetězec s až 14 znaky, které jednoznačně pojmenovává nový objekt pracovního prostoru.
Poznámky
Jedna verze funkce umožňuje vyhledat databázi podle indexu. Druhá verze umožňuje vyhledat databázi podle názvu.
Popis informací vrácených v dbinfo naleznete v CDaoDatabaseInfo struktury. Tato struktura obsahuje členy, které odpovídají položkám informací uvedených výše v popisu dwInfoOptions. Když požadujete informace na jedné úrovni, získáte také informace o všech předchozích úrovních.
CDaoWorkspace::GetIniPath
Voláním této členské funkce získáte umístění nastavení inicializace databázového stroje Microsoft Jet v registru Systému Windows.
static CString PASCAL GetIniPath();
Vrácená hodnota
A CString obsahující umístění registru.
Poznámky
Umístění můžete použít k získání informací o nastavení databázového stroje. Vrácené informace jsou ve skutečnosti názvem podklíče registru.
Související informace najdete v tématech IniPath – vlastnost a Přizpůsobení registru systému Windows Nastavení pro přístup k datům v nápovědě dao.
CDaoWorkspace::GetIsolateODBCTrans
Voláním této členské funkce získáte aktuální hodnotu vlastnosti DAO IsolateODBCTrans pro pracovní prostor.
BOOL GetIsolateODBCTrans();
Vrácená hodnota
Nenulové, pokud jsou transakce ODBC izolované; jinak 0.
Poznámky
V některých situacích může být potřeba mít více souběžných transakcí čekajících na stejnou databázi ODBC. K tomu je potřeba otevřít samostatný pracovní prostor pro každou transakci. Mějte na paměti, že i když každý pracovní prostor může mít vlastní připojení ODBC k databázi, zpomaluje se výkon systému. Vzhledem k tomu, že izolace transakcí není obvykle nutná, jsou ve výchozím nastavení sdílena připojení ODBC z více objektů pracovního prostoru otevřených stejným uživatelem.
Některé servery ODBC, například Microsoft SQL Server, neumožňují souběžné transakce na jednom připojení. Pokud potřebujete mít více než jednu transakci najednou čekající na takovou databázi, nastavte vlastnost IsolateODBCTrans na TRUE v každém pracovním prostoru, jakmile ji otevřete. To vynutí samostatné připojení ODBC pro každý pracovní prostor.
Související informace naleznete v tématu "IsolateODBCTrans – vlastnost" v nápovědě k dao.
CDaoWorkspace::GetLoginTimeout
Voláním této členské funkce získáte aktuální hodnotu vlastnosti DAO LoginTimeout pro pracovní prostor.
static short PASCAL GetLoginTimeout();
Vrácená hodnota
Počet sekund před chybou při pokusu o přihlášení k databázi ODBC.
Poznámky
Tato hodnota představuje počet sekund před chybou při pokusu o přihlášení k databázi ODBC. Výchozí nastavení LoginTimeout je 20 sekund. Pokud je hodnota LoginTimeout nastavená na hodnotu 0, nedojde k žádnému vypršení časového limitu a komunikace se zdrojem dat může přestat reagovat.
Při pokusu o přihlášení k databázi ODBC, jako je například Microsoft SQL Server, může připojení selhat v důsledku chyb sítě nebo kvůli tomu, že server není spuštěný. Místo čekání na připojení výchozích 20 sekund můžete určit, jak dlouho databázový stroj čeká, než způsobí chybu. K přihlášení k serveru dochází implicitně jako součást řady různých událostí, jako je spuštění dotazu na databázi externího serveru.
Související informace najdete v tématu "LoginTimeout – vlastnost" v nápovědě k DAO.
CDaoWorkspace::GetName
Voláním této členské funkce získáte uživatelem definovaný název objektu pracovního prostoru DAO, který je základem objektu CDaoWorkspace
.
CString GetName();
Vrácená hodnota
A CString obsahující uživatelem definovaný název objektu pracovního prostoru DAO.
Poznámky
Název je užitečný pro přístup k objektu pracovního prostoru DAO v kolekci Pracovních prostorů databázového stroje podle názvu.
Související informace najdete v tématu "Vlastnost názvu" v nápovědě k DAO.
CDaoWorkspace::GetUserName
Voláním této členské funkce získáte jméno vlastníka pracovního prostoru.
CString GetUserName();
Vrácená hodnota
A CString , který představuje vlastníka objektu pracovního prostoru.
Poznámky
Pokud chcete získat nebo nastavit oprávnění pro vlastníka pracovního prostoru, zavolejte daO přímo a zkontrolujte nastavení vlastnosti Oprávnění; určuje, jaká oprávnění má uživatel. K práci s oprávněními potřebujete systém. SOUBOR MDA.
Informace o přímém volání DAO naleznete v technické poznámce 54. Související informace najdete v tématu Vlastnost UserName v nápovědě k dao.
CDaoWorkspace::GetVersion
Voláním této členské funkce určíte verzi používaného databázového stroje Microsoft Jet.
static CString PASCAL GetVersion();
Vrácená hodnota
CString, který označuje verzi databázového stroje přidruženého k objektu.
Poznámky
Vrácená hodnota představuje číslo verze ve formátu major.minor; Například "3.0". Číslo verze produktu (například 3.0) se skládá z čísla verze (3), tečky a čísla verze (0).
Související informace najdete v tématu "Vlastnost verze" v nápovědě k dao.
CDaoWorkspace::GetWorkspaceCount
Voláním této členské funkce načtěte počet objektů pracovního prostoru DAO v kolekci Pracovních prostorů databázového stroje.
short GetWorkspaceCount();
Vrácená hodnota
Počet otevřených pracovních prostorů v kolekci Pracovních prostorů
Poznámky
Tento počet nezahrnuje žádné otevřené pracovní prostory, které nejsou připojené k kolekci. GetWorkspaceCount
je užitečné, pokud potřebujete procházet všechny definované pracovní prostory v kolekci Pracovních prostorů. Informace o daném pracovním prostoru v kolekci získáte v tématu GetWorkspaceInfo. Typickým využitím je volání GetWorkspaceCount
počtu otevřených pracovních prostorů a následné použití tohoto čísla jako index smyčky pro opakovaná volání GetWorkspaceInfo
.
CDaoWorkspace::GetWorkspaceInfo
Voláním této členské funkce získáte různé druhy informací o pracovním prostoru otevřeném v relaci.
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
Index databáze v kolekci Pracovních prostorů založený na nule pro vyhledávání podle indexu.
wkspcinfo
Odkaz na CDaoWorkspaceInfo objekt, který vrací požadované informace.
dwInfoOptions
Možnosti, které určují, které informace o pracovním prostoru se mají načíst. Dostupné možnosti jsou zde uvedeny spolu s tím, co způsobí vrácení funkce:
AFX_DAO_PRIMARY_INFO (výchozí) název
AFX_DAO_SECONDARY_INFO Primární informace plus: Uživatelské jméno
AFX_DAO_ALL_INFO primární a sekundární informace plus: Izolace ODBCTrans
lpszName
Název objektu pracovního prostoru pro vyhledání podle názvu. Název je řetězec s až 14 znaky, které jednoznačně pojmenovává nový objekt pracovního prostoru.
Poznámky
Popis informací vrácených v wkspcinfo naleznete v CDaoWorkspaceInfo struktury. Tato struktura obsahuje členy, které odpovídají položkám informací uvedených výše v popisu dwInfoOptions. Když požadujete informace na jedné úrovni, získáte také informace o předchozích úrovních.
CDaoWorkspace::Idle
Volání Idle
, které poskytuje databázovému stroji možnost provádět úlohy na pozadí, které nemusí být aktuální kvůli intenzivnímu zpracování dat.
static void PASCAL Idle(int nAction = dbFreeLocks);
Parametry
nAction
Akce, která se má provést během zpracování nečinnosti. V současné době je dbFreeLocks
jedinou platnou akcí .
Poznámky
To se často týká víceuživatelů, v prostředích multitaskingu, ve kterých není dostatek času zpracování na pozadí pro zachování všech záznamů v aktuální sadě záznamů.
Poznámka
Volání Idle
není nutné s databázemi vytvořenými ve verzi 3.0 databázového stroje Microsoft Jet. Používejte Idle
pouze pro databáze vytvořené se staršími verzemi.
Zámky čtení se obvykle odeberou a data v místních objektech sady záznamů typu dynaset se aktualizují jenom v případě, že nedojde k žádným jiným akcím (včetně pohybu myší). Pokud pravidelně voláte Idle
, poskytnete databázovému stroji čas, abyste zachytili úlohy zpracování na pozadí uvolněním nepotřebných zámků čtení. Zadání konstanty jako argumentu dbFreeLocks
zpožďuje zpracování, dokud nebudou uvolněny všechny zámky čtení.
Tato členová funkce není nutná v prostředích s jedním uživatelem, pokud není spuštěno více instancí aplikace. Členová Idle
funkce může zvýšit výkon v prostředí s více uživateli, protože vynutí databázový stroj vyprázdnit data na disk a uvolnit zámky v paměti. Zámky čtení můžete uvolnit také tak, že operace budou součástí transakce.
Související informace najdete v tématu "Nečinná metoda" v nápovědě k dao.
CDaoWorkspace::IsOpen
Voláním této členské funkce určíte, zda CDaoWorkspace
je objekt otevřený – to znamená, zda byl objekt MFC inicializován voláním Open nebo voláním vytvořit.
BOOL IsOpen() const;
Vrácená hodnota
Nenulové, pokud je objekt pracovního prostoru otevřený; jinak 0.
Poznámky
Můžete volat libovolnou členovou funkci pracovního prostoru, která je v otevřeném stavu.
CDaoWorkspace::m_pDAOWorkspace
Ukazatel na základní objekt pracovního prostoru DAO.
Poznámky
Tento datový člen použijte, pokud potřebujete přímý přístup k podkladovému objektu DAO. Rozhraní objektu DAO můžete volat pomocí tohoto ukazatele.
Informace o přímém přístupu k objektům DAO naleznete v technické poznámce 54.
CDaoWorkspace::Open
Explicitně otevře objekt pracovního prostoru přidružený k výchozímu pracovnímu prostoru DAO.
virtual void Open(LPCTSTR lpszName = NULL);
Parametry
lpszName
Název objektu pracovního prostoru DAO, který se má otevřít – řetězec s až 14 znaky, které jednoznačně pojmenovává pracovní prostor. Přijměte výchozí hodnotu NULL a explicitně otevřete výchozí pracovní prostor. Požadavky na pojmenování najdete v parametru lpszName pro create. Související informace najdete v tématu "Vlastnost názvu" v nápovědě k DAO.
Poznámky
Po vytvoření objektu CDaoWorkspace
zavolejte tuto členovou funkci, která provede jednu z následujících věcí:
Explicitně otevřete výchozí pracovní prostor. Předejte hodnotu NULL pro lpszName.
Otevřete existující
CDaoWorkspace
objekt, který je členem kolekce Pracovních prostorů podle názvu. Předejte platný název existujícího objektu pracovního prostoru.
Open
umístí objekt pracovního prostoru do otevřeného stavu a také inicializuje databázový stroj, pokud ještě nebyl inicializován pro vaši aplikaci.
Přestože lze volat mnoho CDaoWorkspace
členských funkcí pouze po otevření pracovního prostoru, následující členské funkce, které pracují s databázovým strojem, jsou k dispozici po vytvoření objektu C++, ale před voláním Open
:
CDaoWorkspace::RepairDatabase
Tuto členovou funkci zavolejte, pokud se potřebujete pokusit opravit poškozenou databázi, která přistupuje k databázovému stroji Microsoft Jet.
static void PASCAL RepairDatabase(LPCTSTR lpszName);
Parametry
lpszName
Cesta a název souboru existujícího souboru databáze stroje Microsoft Jet. Pokud tuto cestu vynecháte, prohledá se pouze aktuální adresář. Pokud váš systém podporuje jednotné zásady vytváření názvů (UNC), můžete také zadat síťovou cestu, například:\\\\MYSERVER\\MYSHARE\\MYDIR\\MYDB. MDB". (V řetězci cesty jsou vyžadována dvojitá zpětná lomítka, protože znak "\" je řídicí znak jazyka C++.)
Poznámky
Před opravou je nutné zavřít databázi určenou nástrojem lpszName . V prostředí s více uživateli nemohou ostatní uživatelé při opravě otevřít lpszName . Pokud lpszName není uzavřen nebo není k dispozici pro výhradní použití, dojde k chybě.
Tato členová funkce se pokusí opravit databázi, která byla označena jako poškozená neúplnou operací zápisu. K tomu může dojít v případě, že se aplikace používající databázový stroj Microsoft Jet neočekávaně zavře kvůli výpadku napájení nebo problému s hardwarem počítače. Pokud operaci dokončíte a zavoláte funkci Zavřít člena nebo aplikaci ukončíte obvyklým způsobem, databáze nebude označena jako pravděpodobně poškozená.
Poznámka
Po opravě databáze je také vhodné komprimovat pomocí členské funkce CompactDatabase defragmentace souboru a obnovit místo na disku.
Další informace o opravě databází naleznete v tématu "RepairDatabase Method" v nápovědě k DAO.
CDaoWorkspace::Rollback
Voláním této členské funkce ukončíte aktuální transakci a obnovíte všechny databáze v pracovním prostoru do stavu před zahájením transakce.
void Rollback();
Poznámky
Upozornění
V rámci jednoho objektu pracovního prostoru jsou transakce vždy globální pro pracovní prostor a nejsou omezeny pouze na jednu databázi nebo sadu záznamů. Pokud provádíte operace s více než jednou databází nebo sadou záznamů v rámci transakce pracovního prostoru, Rollback
obnoví všechny operace na všech těchto databázích a sadách záznamů.
Pokud zavřete objekt pracovního prostoru bez uložení nebo vrácení zpět čekajících transakcí, transakce se automaticky vrátí zpět. Pokud voláte CommitTrans nebo Rollback
bez prvního volání BeginTrans, dojde k chybě.
Poznámka
Při zahájení transakce databázový stroj zaznamenává své operace v souboru uloženém v adresáři určeném proměnnou prostředí TEMP na pracovní stanici. Pokud soubor transakčního protokolu vyčerpá dostupné úložiště na jednotce TEMP, databázový stroj způsobí, že mfc vyvolá CDaoException
chybu (chyba DAO 2004). V tomto okamžiku, pokud zavoláte CommitTrans
, neurčitý počet operací se potvrdí, ale zbývající nedokončené operace budou ztraceny a operace se musí restartovat. Volání Rollback
uvolní transakční protokol a vrátí zpět všechny operace v transakci.
CDaoWorkspace::SetDefaultPassword
Voláním této členské funkce nastavíte výchozí heslo, které databázový stroj používá při vytvoření objektu pracovního prostoru bez konkrétního hesla.
static void PASCAL SetDefaultPassword(LPCTSTR lpszPassword);
Parametry
lpszPassword
Výchozí heslo. Heslo může mít délku až 14 znaků a může obsahovat libovolný znak kromě ASCII 0 (null). V heslech se rozlišují velká a malá písmena.
Poznámky
Výchozí heslo, které jste nastavili, platí pro nové pracovní prostory, které vytvoříte po volání. Při vytváření dalších pracovních prostorů není nutné zadávat heslo ve volání Vytvořit .
Použití této členské funkce:
CDaoWorkspace
Vytvořit objekt, ale nevolatCreate
.Zavolejte
SetDefaultPassword
a pokud chcete, SetDefaultUser.Volání
Create
tohoto objektu pracovního prostoru nebo dalších objektů bez zadání hesla
Ve výchozím nastavení je vlastnost DefaultUser nastavena na "admin" a Vlastnost DefaultPassword je nastavena na prázdný řetězec ("").
Další informace o zabezpečení najdete v tématu "Vlastnost oprávnění" v nápovědě k DAO. Související informace naleznete v tématech "DefaultPassword – vlastnost" a "DefaultUser – vlastnost" v nápovědě k DAO.
CDaoWorkspace::SetDefaultUser
Voláním této členské funkce nastavíte výchozí uživatelské jméno, které databázový stroj používá při vytvoření objektu pracovního prostoru bez konkrétního uživatelského jména.
static void PASCAL SetDefaultUser(LPCTSTR lpszDefaultUser);
Parametry
lpszDefaultUser
Výchozí uživatelské jméno. Uživatelské jméno může mít délku 1 až 20 znaků a může obsahovat abecední znaky. zvýrazňující znaky, čísla, mezery a symboly s výjimkou: "
(uvozovky), /
(lomítko), (zpětné lomítko), \
[ ]
(závorky), (dvojtečka), :
|
(svislé znaménko), <
(znaménko menší než), >
(znaménko +
plus), =
(symbol rovná se), ;
(středník), ,
(otazník), *
(hvězdička), úvodní mezery a řídicí znaky (ASCII 00 až ASCII 31). Související informace najdete v tématu Vlastnost UserName v nápovědě k dao.
Poznámky
Výchozí uživatelské jméno, které jste nastavili, platí pro nové pracovní prostory, které vytvoříte po volání. Při vytváření následných pracovních prostorů nemusíte v volání Vytvořit zadávat uživatelské jméno.
Použití této členské funkce:
CDaoWorkspace
Vytvořit objekt, ale nevolatCreate
.Zavolejte
SetDefaultUser
a pokud chcete, SetDefaultPassword.Volání
Create
tohoto objektu pracovního prostoru nebo dalších objektů bez zadání uživatelského jména
Ve výchozím nastavení je vlastnost DefaultUser nastavena na "admin" a Vlastnost DefaultPassword je nastavena na prázdný řetězec ("").
Související informace naleznete v tématech "DefaultUser – vlastnost" a "DefaultPassword – vlastnost" v nápovědě k DAO.
CDaoWorkspace::SetIniPath
Voláním této členské funkce určíte umístění nastavení registru systému Windows pro databázový stroj Microsoft Jet.
static void PASCAL SetIniPath(LPCTSTR lpszRegistrySubKey);
Parametry
lpszRegistrySubkey
Řetězec obsahující název podklíče registru Windows pro umístění nastavení databázového stroje Microsoft Jet nebo parametrů potřebných pro instalovatelné databáze ISAM.
Poznámky
Zavolat SetIniPath
jenom v případě, že potřebujete zadat speciální nastavení. Další informace naleznete v tématu IniPath – vlastnost v nápovědě k dao.
Poznámka
Volání SetIniPath
během instalace aplikace, ne při spuštění aplikace. SetIniPath
musí být volána před otevřením všech pracovních prostorů, databází nebo sad záznamů; v opačném případě mfc vyvolá výjimku.
Tento mechanismus můžete použít ke konfiguraci databázového stroje s uživatelským nastavením registru. Rozsah tohoto atributu je omezen na vaši aplikaci a nelze jej změnit bez restartování aplikace.
CDaoWorkspace::SetIsolateODBCTrans
Voláním této členské funkce nastavíte hodnotu vlastnosti DAO IsolateODBCTrans pro pracovní prostor.
void SetIsolateODBCTrans(BOOL bIsolateODBCTrans);
Parametry
bIsolateODBCTrans
Pokud chcete začít izolovat transakce ODBC, předejte true. Pokud chcete zastavit izolování transakcí ODBC, předejte hodnotu FALSE.
Poznámky
V některých situacích může být potřeba mít více souběžných transakcí čekajících na stejnou databázi ODBC. K tomu je potřeba otevřít samostatný pracovní prostor pro každou transakci. I když každý pracovní prostor může mít vlastní připojení ODBC k databázi, zpomaluje se tím výkon systému. Vzhledem k tomu, že izolace transakcí není obvykle nutná, jsou ve výchozím nastavení sdílena připojení ODBC z více objektů pracovního prostoru otevřených stejným uživatelem.
Některé servery ODBC, například Microsoft SQL Server, neumožňují souběžné transakce na jednom připojení. Pokud potřebujete mít více než jednu transakci najednou čekající na takovou databázi, nastavte vlastnost IsolateODBCTrans na TRUE v každém pracovním prostoru, jakmile ji otevřete. To vynutí samostatné připojení ODBC pro každý pracovní prostor.
CDaoWorkspace::SetLoginTimeout
Voláním této členské funkce nastavíte hodnotu vlastnosti DAO LoginTimeout pro pracovní prostor.
static void PASCAL SetLoginTimeout(short nSeconds);
Parametry
nSeconds
Počet sekund před chybou při pokusu o přihlášení k databázi ODBC.
Poznámky
Tato hodnota představuje počet sekund před chybou při pokusu o přihlášení k databázi ODBC. Výchozí nastavení LoginTimeout je 20 sekund. Pokud je hodnota LoginTimeout nastavená na hodnotu 0, nedojde k žádnému vypršení časového limitu a komunikace se zdrojem dat může přestat reagovat.
Při pokusu o přihlášení k databázi ODBC, jako je například Microsoft SQL Server, může připojení selhat v důsledku chyb sítě nebo kvůli tomu, že server není spuštěný. Místo čekání na připojení výchozích 20 sekund můžete určit, jak dlouho databázový stroj čeká, než způsobí chybu. K přihlášení k serveru dochází implicitně jako součást řady různých událostí, například spuštění dotazu na databázi externího serveru. Hodnota časového limitu je určena aktuálním nastavením LoginTimeout vlastnost.
Související informace najdete v tématu "LoginTimeout – vlastnost" v nápovědě k DAO.
Viz také
CObject – třída
Graf hierarchie
CDaoDatabase – třída
CDaoRecordset – třída
CDaoTableDef – třída
CDaoQueryDef – třída
CDaoException – třída
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro