Spomeňte si na pokojné časy z detstva, keď ste sa zabávali s písmenkovou polievkou. Môžete si znova pripomenúť tieto spomienky – teraz ochutnáme niekoľko databázových verzií písmenkovej polievky. V nasledujúcich častiach sú uvedené základné informácie o tom, ako sa dostať do databázy s reťazcami pripojenia a ako používať databázové programovacie rozhranie v accessovom kóde VBA.
Obsah tohto článku
Používanie ovládača ODBC alebo poskytovateľa OLE DB
Rozhranie pre SQL Server z Accessu pomocou programovania
Používanie ovládača ODBC alebo poskytovateľa OLE DB
Reťazce pripojenia sú známe už dlho. Formátovaný reťazec pripojenia môžete definovať buď v používateľskom rozhraní Accessu, alebo v kóde VBA. Reťazec pripojenia (či je to ODBC alebo OLE DB) odovzdá priamo do databázy informácie, ako je napríklad umiestnenie servera, názov databázy, typ zabezpečenia a ďalšie užitočné možnosti. Príklad:
ODBC;DRIVER=SQL Server;SERVER="MyServer";DATABASE="MyHRdb";TRUSTED_CONNECTION=Yes
Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyHRdb; Integrated Security=SSPI;
Spočiatku to bol SQL Server Native Client (SNAC), samostatná knižnica, ktorá obsahovala technológie ODBC a OLEDB, pričom je stále k dispozícii pre SQL Server verzie 2005 až 2012. Mnoho starších aplikácií používalo knižnicu SNAC, ktorá je stále podporovaná pre spätnú kompatibilitu, ale neodporúčame ju používať v rámci vývoja nových aplikácií. Mali by ste používať novšie jednotlivé verzie ovládačov ODBC, ktoré sú k dispozícii na stiahnutie.
Ovládače ODBC
Rozhranie ODBC (Open Database Connectivity) je protokol, ktorý používate na pripojenie databázy programu Access k externému zdroju údajov, akým je napríklad Microsoft SQL Server. Ak chcete pridať reťazec pripojenia, zvyčajne sa používajú zdroje údajov súborov (nazývané aj súbory DSN), v tomto prípade sa v reťazci pripojenia použije kľúčové slovo FILEDSN, alebo sa uloží v databáze Registry, a v takom prípade sa použije kľúčové slovo DSN. Prípadne môžete použiť jazyk VBA a nastaviť tieto vlastnosti pomocou reťazca pripojenia bez DSN.
V priebehu rokov prichádzali ovládače ODBC v troch fázach:
-
Pred rokom 2005 sa ovládače ODBC dodávali s produktom Windows Data Access Components (WDAC), ktorý bol pôvodne nazývaný Microsoft Data Access Components (MDAC). Tieto súčasti sa stále dodávajú s Windowsom na spätnú kompatibilitu. Ďalšie informácie nájdete v téme Microsoft/Windows Data Access Components.
-
Ovládače ODBC sa dodávali s knižnicou SNAC pre SQL Server 2005 až SQL Server 2012.
-
Po verzii SQL Server 2012 sa ovládače ODBC dodávali samostatne a obsahujú podporu nových funkcií SQL Servera.
V rámci nového vývoja sa vyhnite používaniu ovládačov ODBC z prvých dvoch fáz a použite ovládače ODBC z tretej fázy.
Poskytovatelia OLE DB
Object Linking and Embedding, Database (OLE DB) je novší protokol, ktorý používate na pripojenie databázy programu Access k externému zdroju údajov, akým je napríklad Microsoft SQL Server. OLE DB nevyžaduje názov DSN a poskytuje aj úplný prístup k zdrojom údajov ODBC a ovládačom ODBC.
Tip Pri pridávaní reťazca pripojenia OLE DB zvyčajne použijete dialógové okno Prepojenie údajov - vlastnosti. Napriek tomu, že v programe Access nie je možné otvoriť dialógové okno Prepojenie údajov – vlastnosti, v Prieskumníkovi môžete vytvoriť prázdny súbor .txt, zmeniť typ súboru na formát .udl a potom dvakrát kliknúť na súbor. Po vytvorení reťazca pripojenia zmeňte typ súboru späť na .txt.
V priebehu rokov prichádzali poskytovatelia OLE DB v troch fázach:
-
Pred rokom 2005 sa poskytovatelia OLE DB dodávali s produktom Windows Data Access Components (WDAC), ktorý bol pôvodne nazývaný Microsoft Data Access Components (MDAC).
-
Poskytovatelia OLE DB sa dodávali s verziami SQL Server 2005 až SQL Server 2017. V roku 2011 boli zamietnutí.
-
V roku 2017 boli poskytovatelia OLE DB pre SQL Server znova povolení.
Momentálne odporúčanou verziou v rámci vývoja nových riešení je ovládač OLE DB 18 pre SQL Server.
Optimalizácia výkonu pomocou reťazca pripojenia ODBC
Ak chcete optimalizovať výkon, minimalizovať sieťové prenosy a znížiť prístup viacerých používateľov do databázy servera SQL Server, použite čo najmenej reťazcov pripojenia a zdieľajte reťazce pripojenia prostredníctvom rôznych množín záznamov. Napriek tomu, že ACE jednoducho prenesie reťazec pripojenia na server, rozumie a použije nasledujúce kľúčové slová: DSN, DATABASE, UID, PWD a DRIVER, aby sa minimalizovala komunikácia klienta a servera.
Poznámka Ak sa stratí pripojenie ODBC k externému zdroju údajov, Access sa k nemu automaticky pokúsi znova pripojiť. Ak je opätovný pokus úspešný, môžete pokračovať v práci. Ak sa opätovný pokus nepodarí, môžete pracovať s objektmi, ktoré sa nespoliehajú na pripojenie. Ak sa chcete opätovne pripojiť, zavrite a znova otvorte Access.
Odporúčania pri použití objektov ODBC aj OLE DB
Nemiešajte technológie reťazca pripojenia a databázového prístupu. Použite reťazec pripojenia ODBC pre DAO. Použite reťazec pripojenia OLE DB pre ADO. Ak vaša aplikácia obsahuje kód VBA, ktorý používa DAO aj ADO, potom použite ovládač ODBC pre DAO a poskytovateľa OLE DB pre ADO. Snažte sa získať najnovšiu funkciu a podporu pre ODBC aj OLEDB.
Pre ODBC sa používa výraz ovládač a pre OLE DB sa používa výraz poskytovateľ. Výrazy popisujú rovnaký typ softvérovej súčasti, ale nie sú zameniteľné v syntaxi reťazca pripojenia. Použite správnu hodnotu podľa dokumentácie.
Rozhranie pre SQL Server z Accessu pomocou programovania
Existujú dva hlavné spôsoby programovaného rozhrania pre databázu servera SQL Server z programu Access.
DAO
Objekt prístupu k údajom (DAO) poskytuje abstraktné rozhranie pre databázu. Microsoft Data Access Objects (DAO) je natívny programovací objektový model, ktorý umožňuje získať jadro Accessu a SQL Servera na vytváranie, odstraňovanie, úpravu a tvorbu zoznamy objektov, tabuliek, polí, indexov, vzťahov, dotazov, vlastností a externých databáz.
Ďalšie informácie nájdete v téme Odkaz na Microsoft Data Access Objects.
ADO
Objekty ADO poskytujú programovací model s vysokou úrovňou a sú k dispozícii v Accesse pomocou odkazu na knižnicu tretej strany. Ak chcete získať prístup k údajom z rôznych zdrojov, ako sú napríklad Access a SQL Server, objekty ADO vám to zjednodušia. Hlavnými výhodami sú jednoduché použitie, vysoká rýchlosť, nízka spotreba pamäte a miesta na disku. Objekty ADO podporujú aj kľúčové funkcie pre tvorbu a webové aplikácie.
Ďalšie informácie nájdete v témach Odkaz na Microsoft ActiveX Data Objects a Microsoft ActiveX Data Objects (ADO).
Ktorú možnosť treba použiť?
V accessovom riešení používajúcom kód VBA môžete použiť objekty DAO, ADO alebo oboje ako technológiu databázového rozhrania. Objekty DAO sú v Accesse naďalej predvolené. Napríklad všetky formuláre a zostavy a dotazy Accessu používajú DAO. Pri migrácii na SQL Server však zvážte použitie objektov ADO, aby bolo vaše riešenie efektívnejšie. Tu sú všeobecné pokyny, ktoré vám pomôžu pri rozhodovaní, či použiť objekty DAO alebo ADO.
Objekty DAO použite vtedy, ak chcete urobiť toto:
-
Vytvoriť viazaný formulár na čítanie a zápis bez použitia jazyka VBA.
-
Vytvoriť dotaz na lokálnu tabuľku.
-
Stiahnuť údaje do dočasných tabuliek.
-
Použiť odovzdávajúce dotazy ako zdroje údajov pre zostavy alebo formuláre v režime iba na čítanie.
-
Definovať a použiť objekt TableDef alebo QueryDef v jazyku VBA.
Objekty ADO použite vtedy, ak chcete urobiť toto:
-
Využiť ďalšie spôsoby optimalizácie, ako je napríklad vykonávanie asynchrónnych operácií.
-
Spustiť odovzdávajúce dotazy typu DDL a DML.
-
Prejsť na údaje SQL Servera priamo cez množiny záznamov v jazyku VBA.
-
Zapísať jednoduchší kód pre určité úlohy, ako je napríklad streamovanie objektov BLOB.
-
Volať uloženú procedúru priamo, s parametrami, pomocou objektu príkazu v jazyku VBA.
Súhrn verzií ovládačov ODBC
V nasledujúcej tabuľke je súhrn dôležitých informácií o verziách ovládačov ODBC, umiestneniach súborov na stiahnutie a podpore funkcií. Uistite sa, že používate správnu bitovú verziu (64-bitovú alebo 32 bitovú) ovládača, ktorý je založený na systéme Windows, a nie na balíku Office. Ak používate 32-bitovú verziu Accessu v 64-bitovej verzii Windowsu, nainštalujte 64-bitové ovládače, ktoré obsahujú súčasti 32-bitovej verzie, ktoré sú potrebné pre Access.
Ďalšie informácie nájdete v témach Používanie kľúčových slov reťazca pripojenia s klientom SQL Server Native Client, Poznámky k vydaniu pre ODBC na SQL Server vo Windowse (V17) a Funkcie ovládača Microsoft ODBC pre SQL Server vo Windowse (V13, 11).
Súhrn verzií poskytovateľov OLE DB
V nasledujúcej tabuľke je súhrn dôležitých informácií o verziách poskytovateľov OLE DB, umiestneniach súborov na stiahnutie a podpore funkcií. Uistite sa, že používate správnu bitovú verziu (64-bitovú alebo 32 bitovú) ovládača, ktorý je založený na systéme Windows, a nie na balíku Office. Ak používate 32-bitovú verziu Accessu v 64-bitovej verzii Windowsu, nainštalujte 64-bitové ovládače, ktoré obsahujú súčasti 32-bitovej verzie, ktoré sú potrebné pre Access.
Ďalšie informácie nájdete v téme Používanie kľúčových slov reťazca pripojenia s natívnym klientom SQL Server Native Client.
Poskytovateľ OLE DB |
Verzia |
Stiahnuť |
Nové funkcie |
Ovládač OLE DB 18.2.1 (MSOLEDBSQL) |
SQL Server 2017 |
Pozrite si témy Funkcia ovládača OLE DB pre SQL Server a Poznámky k vydaniu ovládača Microsoft OLE DB pre SQL Server |
|
SQL Server Native Client (SQLNCLI) |
SQL Server 2005 až 2012 |
Nepovolené, nepoužívajte |
|
Ovládač OLE DB (SQLOLEDB) |
Nepovolené, nepoužívajte |
Súhrn kľúčových slov ODBC
Nasledujúca tabuľka obsahuje súhrn kľúčových slov ODBC, ktoré SQL Server rozpozná, a ich účel. Program Access z nich rozpozná iba podmnožinu.
Kľúčové slovo |
Popis |
Addr |
Sieťová adresa servera, na ktorom je spustená inštancia SQL Servera. |
AnsiNPW |
Určuje použitie správania definovaného ANSI na spracovanie porovnaní s hodnotou NULL, vyplnenie znaku, upozornenia a reťazenie s hodnotou NULL (Áno alebo Nie). |
APLIKÁCIA |
Názov aplikácie, ktorá volá SQLDriverConnect. |
ApplicationIntent |
Pri pripájaní k serveru (ReadOnly alebo ReadWrite) vyhlasuje typ vyťaženia aplikácie. |
AttachDBFileName |
Názov základného súboru pripojiteľnej databázy. |
AutoTranslate |
Určuje, či sa reťazce znakov ANSI odosielajú medzi klientom alebo serverom alebo prekladajú do jazyka Unicode (Áno alebo Nie). |
Databáza |
Názov databázy. Popis Účel pripojenia. Ovládač Názov ovládača vrátený príkazom SQLDrivers. |
DSN |
Názov existujúceho používateľa alebo systémového zdroja údajov ODBC. Šifrovanie Určuje, či sa majú údaje pred odoslaním prostredníctvom siete šifrovať (Áno alebo Nie). |
Failover_Partner |
Názov náhradného partnerského servera, ktorý sa má použiť, ak nie je možné vytvoriť pripojenie k primárnemu serveru. |
FailoverPartnerSPN |
SPN náhradného partnera. |
Rezerva |
Zamietnuté kľúčové slovo. |
FileDSN |
Názov existujúceho zdroja údajov súboru ODBC. Jazyk Jazyk SQL Servera. |
MARS_Connection |
Určuje viacnásobné aktívne množiny výsledkov (MARS) v pripojení pre SQL Server 2005 (9.x) alebo novšiu verziu (Áno alebo Nie). |
MultiSubnetFailover |
Určuje, či sa má pripojiť k poslucháčovi skupiny dostupnosti v skupine dostupnosti servera SQL Server alebo náhradnej inštancie klastra (Áno alebo Nie). |
Net |
Reťazec dbnmpntw označuje pomenované presmerovania a dbmssocn označuje protokol TCP/IP. |
PWD |
Prihlasovacie heslo pre SQL Server. |
QueryLog_On |
Určuje zaznamenávanie dlhotrvajúcich dotazov (Áno alebo Nie). |
QueryLogFile |
Úplná cesta a názov súboru, ktorý sa má použiť na zaznamenávanie údajov dlhotrvajúcich dotazov. |
QueryLogTime |
Reťazec znakov číslic určujúci prahovú hodnotu (v milisekundách) zaznamenávania dlhotrvajúcich dotazov. |
QuotedId |
Určuje, či SQL Server použije pravidlá noriem ISO týkajúce sa používania úvodzoviek v príkazoch SQL (Áno alebo Nie). |
Regional |
Určuje, či ovládač ODBC pre SQL Server Native Client pri konvertovaní údajov meny, dátumu alebo času na údaje znakov (Áno alebo Nie) využíva nastavenie klienta. |
SaveFile |
Názov súboru zdroja údajov ODBC, do ktorého sa uložia atribúty aktuálneho pripojenia, ak je pripojenie úspešné. |
Server |
Názov inštancie SQL Servera: Server v sieti, IP adresa alebo alias správcu konfigurácie. |
ServerSPN |
SPN servera. |
StatsLog_On |
Umožňuje zachytávanie údajov o výkone ovládača ODBC pre SQL Server Native Client. |
StatsLogFile |
Úplná cesta a názov súboru použitého na zaznamenanie štatistík výkonu ovládača ODBC pre SQL Server Native Client. |
Trusted_Connection |
Určuje, či sa na overenie prihlásenia použije režim overovania systému Windows alebo meno používateľa alebo heslo servera SQL Server (Áno alebo nie). |
TrustServerCertificate |
Pri použití s funkciou šifrovania povolí šifrovanie pomocou certifikátu servera s vlastným podpisom. |
UID |
Prihlasovací názov pre SQL Server. |
UseProcForPrepare |
Zamietnuté kľúčové slovo. |
WSID |
Identifikátor pracovnej stanice, sieťový názov počítača, v ktorom sa nachádza daná aplikácia. |
Súhrn kľúčových slov OLE DB
Nasledujúca tabuľka obsahuje súhrn kľúčových slov OLE DB, ktoré SQL Server rozpozná, a ich účel. Program Access z nich rozpozná iba podmnožinu.
Kľúčové slovo |
Popis |
Addr |
Sieťová adresa servera, na ktorom je spustená inštancia SQL Servera. |
APLIKÁCIA |
Reťazec, ktorý identifikuje aplikáciu. |
ApplicationIntent |
Pri pripájaní k serveru (ReadOnly alebo ReadWrite) vyhlasuje typ vyťaženia aplikácie. |
AttachDBFileName |
Názov základného súboru pripojiteľnej databázy. |
AutoTranslate |
Konfiguruje preklad znakov OEM/ANSI (TRUE alebo FALSE). |
Časový limit pripojenia |
Čas (v sekundách) čakania na dokončenie inicializácie zdroja údajov. |
Aktuálny jazyk |
Názov jazyka SQL Servera. |
Zdroj údajov |
Názov inštancie SQL Servera v organizácii. |
Databáza |
Názov databázy. |
DataTypeCompatibility |
Číslo, ktoré označuje spôsob spracovania typu údajov, ktorý sa použije. |
Šifrovanie |
Určuje, či sa majú údaje pred odoslaním prostredníctvom siete šifrovať (Áno alebo Nie). |
FailoverPartner |
Názov náhradného servera, ktorý sa používa na zrkadlenie databázy. |
FailoverPartnerSPN |
SPN náhradného partnera. |
Počiatočný katalóg |
Názov databázy. |
Počiatočný názov súboru |
Názov primárneho súboru (vrátane úplného názvu cesty) pripojiteľnej databázy. |
Integrované zabezpečenie |
Používa sa na overovanie systému Windows (SSPI). |
Jazyk |
Jazyk SQL Servera. |
MarsConn |
Určuje viacnásobné aktívne množiny výsledkov (MARS) v pripojení pre SQL Server 2005 (9.x) alebo novšiu verziu (Áno alebo Nie). |
Net |
Sieťová knižnica, ktorá sa používa na vytvorenie pripojenia k inštancii SQL Servera v organizácii. |
Sieťová adresa |
Sieťová adresa inštancie SQL Servera v organizácii. |
PacketSize |
Veľkosť sieťových paketov. Predvolená hodnota je 4096. |
Informácie o zachovaní zabezpečenia |
Určuje, či je zapnuté zachovanie zabezpečenia (TRUE alebo FALSE). |
PersistSensitive |
Určuje, či je zapnuté zachovanie citlivých údajov (TRUE alebo FALSE). |
Poskytovateľ |
Pre SQL Server Native Client by to malo byť SQLNCLI11. |
PWD |
Prihlasovacie heslo pre SQL Server. |
Server |
Názov inštancie SQL Servera: Server v sieti, IP adresa alebo alias správcu konfigurácie. |
ServerSPN |
SPN servera. |
Timeout |
Čas (v sekundách) čakania na dokončenie inicializácie zdroja údajov. |
Trusted_Connection |
Určuje, či sa na overenie prihlásenia použije režim overovania systému Windows alebo meno používateľa alebo heslo servera SQL Server (Áno alebo nie). |
TrustServerCertificate |
Určuje, či je certifikát servera overený (TRUE alebo FALSE). |
UID |
Prihlasovací názov pre SQL Server. |
Použitie šifrovania údajov |
Určuje, či sa majú údaje pred odoslaním prostredníctvom siete šifrovať (TRUE alebo FALSE). |
UseProcForPrepare |
Zamietnuté kľúčové slovo. |
WSID |
Identifikátor pracovnej stanice, sieťový názov počítača, v ktorom sa nachádza daná aplikácia. |