Zdroj dat: Programová konfigurace zdroje dat rozhraní ODBC
Toto téma popisuje, jak je možné programově nakonfigurovat názvy zdroje dat otevřeného databázového rozhraní (ODBC). To poskytuje flexibilní přístup k datům bez nutnosti explicitního uživatelského specifikování názvů zdrojů dat ve správci rozhraní ODBC nebo v jiných programech.
Obvykle uživatel spustí správce rozhraní ODBC k vytvoření zdroje dat. Pokud systém řízení báze dat (SŘBD) tuto operaci podporuje.
Při vytváření ODBC zdroje dat aplikace Microsoft Access přes správce rozhraní ODBC, existují dvě možnosti: můžete vybrat již existující .mdb soubor a nebo vytvořit nový .mdb soubor. Neexistuje žádný programový způsob vytváření souboru .mdb z vaší MFC aplikace s rozhraním ODBC. Vyžaduje-li vaše aplikace umístit data do zdroje dat aplikace Microsoft Access (soubor .mdb), pravděpodobně chcete mít prázdný .mdb soubor, který lze použít nebo zkopírovat vždy, když ho potřebujete.
Nicméně mnoho SŘBD umožňuje programové vytvoření zdroje dat. Některé zdroje dat zachovávají adresářovou specifikaci pro databáze. To znamená, že adresář představuje zdroj dat a každá tabulka v rámci zmíněného zdroje dat je uložena v samostaném souboru (v případě dBASE je každá tabulka v samostaném souboru s příponou .dbf). Ovladače jiných ODBC databází, jako je například aplikace Microsoft Access a SQL Server, vyžadují splnění některých specifických kritérií před samotným vytvořením zdroj dat. Například při použití SQL Serveru ovladače rozhraní ODBC budete muset mít zavedený SQL Server.
Příklad SQLConfigDataSource
V následujícím příkladu použití :: SQLConfigDataSource rozhraní API ODBC se funkce z rozhraní API pro vytvoření nového zdroje dat aplikace Excel nazývá Vytvoření nového zdroje dat aplikce Excel:
SQLConfigDataSource(NULL,ODBC_ADD_DSN, "Excel Files (*.xls)",
"DSN=New Excel Data Source\0"
"Description=New Excel Data Source\0"
"FileType=Excel\0"
"DataDirectory=C:\\EXCELDIR\0"
"MaxScanRows=20\0");
Všimněte si, že zdroj dat je ve skutečnosti adresář (C:\EXCELDIR); tento adresář musí existovat. Ovladač aplikace Excel používá adresáře jako své zdroje dat a soubory jako jednotlivé tabulky (jedna tabulka je jeden .xls soubor).
Další informace o vytváření tabulek naleznete v tématu Zdroj dat: Programové vytvoření tabulky ve zdroji dat rozhraní ODBC.
Následující informace jsou popsány parametry, které je potřeba předávat funkci :: SQLConfigDataSource z rozhraní ODBC API. Chcete-li použít :: SQLConfigDataSource, je nutné zahrnout hlavičku souboru Odbcinst.h a použít importovanou knihovnu Odbcinst.lib. Také DLL knihovna Odbccp32.dll musí být zahrnuta za běhu (nebo DLL knihovna Odbcinst.dll pro 16 bitů).
Můžete vytvořit název zdroje dat rozhraní ODBC za pomocí správce rozhraní ODBC nebo podobného nástroje. Někdy je však žádoucí vytvořit název zdroje dat přímo z vaší aplikace pro získání přístupu bez nutnosti uživatele spouštět samostatný nástroj.
Správce rozhraní ODBC (je obvykle nainstalován v Ovládacích panelech) vytváří nový zdroj dat vložením položky v registru systému Windows (nebo u 16bitů, v souboru Odbc.ini). Správce ovladačů rozhraní ODBC se dotazuje na tento soubor pro získání požadovaných informací o zdroji dat. Je důležité vědět, jaké informace musí být umístěny v registru, protože je budete potřebovat poskytnout funkci :: SQLConfigDataSource při jejím volání.
Ačkoli tato informace může být přímo zapsána do registru bez použití :: SQLConfigDataSource. Jakákoli aplikace, která tak učiní se spoléhá na současnou techniku, kterou správce ovladačů používá k získání svých dat. Pokud bude pozdější změna správce ovladačů ODBC implementovat zachování záznamů z datového zdroje jiným způsobem, budou všechny aplikace používající tuto techniku nepoužitelné. Je obecně vhodné použítí funkce rozhraní API, pokud je k dispozici. Například Váš kód je přenosný z 16 bitového na 32 bitový pokud použijete funkci :: SQLConfigDataSource. Funkce totiž správně zapisuje do souboru Odbc.ini nebo do registru.
Parametry SQLConfigDataSource
Následující příklad popisuje parametry funkce :: SQLConfigDataSource. Většina informací je převzata z rozhraní ODBC API Programmer's Reference dodávané s aplikací Visual C++ verze 1.5 a novější.
Prototyp funkce
BOOL SQLConfigDataSource(HWND hwndParent,UINT fRequest, LPCSTR lpszDriver, LPCSTR lpszAttributes);
Poznámky
Parametry a použití
hwndParent
Okno, specifikované jako vlastník žádného dialogového okna, je buď libovolným správcem ovladačů rozhraní ODBC nebo určitým specifickým ovladačem rozhraní ODBC vytvořeno k získání potřebných informací od uživatele o novém zdroji dat. Pokud parametr lpszAttributes neposkytuje dostatek informací, zobrazí se dialogové okno. Parametr hwndParent může mít hodnotu NULL.lpszDriver
Popis ovladače. Toto je název prezentovaný uživatelům, nikoli fyzický název ovladače (knihovna DLL).lpszAttributes
Seznam atributů ve formě "Název_klíče = hodnota". Tyto řetězce jsou odděleny znakem "null" a zakončeny dvěmi po sobě jdoucími znaky "null" na konci seznamu. Tyto atributy jsou primárně určeny jako výchozí pro specifický ovladač položek, které jsou předávány do registrů jako nový zdroj dat. Jeden důležitý klíč, který není zmíněný v příručce k rozhraní ODBC API pro tuto funkci je "DSN" ("data source name"), který určuje název nového zdroje dat. Zbývající položky jsou specifické pro ovladač pro nový zdroj dat. Často není nutné využít všechny položky, protože ovladač může vyzvat uživatele k zadání nových hodnot přes dialogová okna. (Toto způsobí ponechání hodnoty NULL u parametru hwndParent.) Můžete ponechat explicitně výchozí hodnoty, takže uživatel nebude vyzván.
Určení popisu parametru lpszDriver ovladače, pomocí správce rozhraní ODBC
Spusťte správce rozhraní ODBC.
Klepněte na tlačítko Přidat.
To vám zobrazí přehled a popisy nainstalovaných ovladačů. Použíjte tento popis jako parametr lpszDriver. Všimněte si, že používáte celý popis, jako například "Soubory aplikace Excel (*.xls)", včetně přípony souboru a závorky, pokud ovšem existují v popisu.
Alternativně můžete ověřit registr (nebo u 16bitů, soubor Odbcinst.ini), který obsahuje seznam všech ovladačů a popisů, v klíči registru "Ovladače rozhraní ODBC" (nebo v oddíle [ovladače rozhraní ODBC] v souboru Odbcinst.ini).
Jedním ze způsobů, jak najít "Názvy_klíčů" a jejich hodnoty pro parametr lpszAttributes, je prozkoumat soubor Odbc.ini z již nakonfigurovaného zdroje dat (toho, který byl nakonfigurován správcem rozhraní ODBC).
Vyhledání názvu klíčů a jejich hodnot parametrem lpszAttributes
Spusťte editor registrů systému Windows (nebo u 16 bitů, otevřete soubor Odbc.ini).
Nalezněte informaci zdroje dat rozhraní ODBC použitím jedné z následujících variant:
U 32 bitů vyhledejte klíč HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources v levém podokně.
V pravém podokně jsou uvedeny položky ve formuláři: "pub: REG_SZ: <zdrojový název dat >", kde <zdrojový název dat > znamená zdrojový název dat, který již byl nakonfigurován s požadovaným nastavením pro ovladač, který chcete použít. Vyberte požadovaný zdroj dat, například SQL Server. Položky následující řetězec "pub:" jsou v pořadí, keyname a hodnota ve vaší lpszAttributes parametr.
U 16bitů najděte oddíl v souboru Odbc.ini označený jako <data source name >.
Následující řádky této položky jsou ve tvaru "Název_klíče = hodnota". Jedná se přesně o položky vašeho parametru lpszAttributes.
Můžete si také prozkoumat dokumentaci pro konkrétní ovladač, který hodláte použít. Užitečné informace naleznete v online nápovědě pro ovladač, která je přístupná po spuštění správce rozhraní ODBC. Tyto soubory nápovědy jsou obvykle umístěny v adresáři WINDOWS\SYSTEM u systémů Windows NT, Windows 3.1 nebo Windows 95.
Chcete-li získat online nápověda pro ovladač rozhraní ODBC
Spusťte správce rozhraní ODBC.
Klepněte na tlačítko Přidat.
Vyberte název ovladače.
Klikněte na tlačítko OK.
Jakmile správce rozhraní ODBC zobrazí informace o vytváření nového zdroje dat pro tento konkrétní ovladač, klepněte na tlačítko Nápověda. To otevře soubor s nápovědou pro tento konkrétní ovladač, který obvykle obsahuje důležité informace týkající se použití ovladače.