Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
azure SQL Managed Instance
azure Synapse Analytics
Open Database Connectivity (ODBC) je rozhraní API Microsoft Win32, které aplikacím umožňuje přístup k datům ve zdrojích dat kompatibilních s rozhraním ODBC. Tento článek vysvětluje, jak rozhraní ODBC zpracovává volání funkcí, spravuje popisovače, komunikuje s ovladači a poskytuje diagnostiku. Poskytuje vývojářům jasnější přehled o tom, jak rozhraní ODBC funguje mezi aplikacemi, správcem ovladačů a databázovými ovladači.
Referenční informace o ovladači ODBC nativního klienta SQL Serveru nekomentuje každou funkci ODBC. Dokumentuje pouze tyto funkce s parametry nebo chování jedinečnými pro ovladač ODBC nativního klienta SQL Serveru.
Ovladač ODBC nativního klienta SQL Serveru odpovídá specifikaci ODBC 3.51. Pokud chcete získat úplný referenční materiál, stáhněte si sadu Microsoft Data Access Components SDK z Centra pro vývojáře dat a úložiště nebo si prohlédněte referenční informace programátora ODBC.
Jak funguje rozhraní API ODBC
Rozhraní ODBC poskytuje standardizované rozhraní mezi aplikacemi a databázovými ovladači. Když aplikace volá funkci ODBC, volání před dosažením zdroje dat prochází několika vrstvami. Porozumění této architektuře vám pomůže psát efektivnější kód a řešit potíže s připojením.
Model popisovače ODBC
Odbc ke správě stavu používá čtyři hierarchické typy popisovačů:
| Typ úchytu | Účel |
|---|---|
| Prostředí (HENV) | Globální nastavení a správa verzí ROZHRANÍ ODBC |
| Připojení (HDBC) | Představuje připojení ke konkrétnímu zdroji dat. |
| Příkaz (HSTMT) | Spravuje příkazy, parametry a sady výsledků SQL. |
| Popisovač (HDESC) | Ukládá metadata pro parametry a sloupce. |
Manažer a interakce mezi ovladači a jezdci
- Aplikace provádí volání rozhraní ODBC API.
- Správce ovladačů ověří parametry a odešle volání.
- Ovladač komunikuje se zdrojem dat.
- Výsledky se přetékají zpět přes Správce ovladačů do aplikace.
Životní cyklus volání funkce
- Přidělení popisovačů
- Nastavte atributy prostředí nebo připojení.
- Připojte se ke zdroji dat.
- Připravte nebo spusťte příkazy SQL.
- Vytvoření vazby parametrů nebo výsledných sloupců
- Načtení řádků
- Volné úchyty.
Diagnostika a řešení chyb
Použijte následující diagnostické funkce:
SQLGetDiagRecSQLGetDiagField
Diagnostika se může vztahovat na obslužné rutiny prostředí, připojení nebo příkazů.
Unicode vs. volání ANSI
ROZHRANÍ ODBC poskytuje dva typy funkcí:
-
Funkce ANSI jako
SQLExecDirectA -
Funkce Unicode jako
SQLExecDirectW
Pro moderní aplikace používejte rozhraní API unicode.
Dělení na vlákna a sdružování
- Bezpečnost vláken závisí na tom, jak aplikace konfiguruje ovladač a správce ovladačů.
- Pokud chcete snížit režijní náklady na připojení, povolte sdružování připojení na obou úrovních.
Referenční informace k rozhraní API ODBC
Následující části seskupují funkce rozhraní ODBC API podle úlohy. Každá položka odkazuje na podrobnou referenční stránku pro ovladač nativního klienta SYSTÉMU SQL Server.
Připojení a zdroj dat
Pomocí těchto funkcí můžete vytvářet, konfigurovat a spravovat připojení k SQL Serveru.
| Funkce | Description |
|---|---|
| Sqlconnect | Vytvoření připojení ke zdroji dat pomocí DSN, ID uživatele a hesla |
| Sqldriverconnect | Připojení pomocí připojovacího řetězce s klíčovými slovy specifických pro ovladače |
| Sqlbrowseconnect | Interaktivní zjišťování atributů připojení k sestavení připojovacího řetězce |
| SQLConfigDataSource | Programové vytváření, úpravy nebo odstraňování názvů zdrojů dat |
| SQLDrivers | Výpis všech nainstalovaných ovladačů ODBC a jejich atributů |
| SQLGetConnectAttr | Načtení aktuální hodnoty atributu připojení |
| SQLSetConnectAttr | Konfigurace chování připojení, jako jsou vypršení časového limitu a izolace transakcí |
Spouštění příkazů SQL
Tyto funkce slouží k přípravě, spouštění a správě příkazů SQL.
| Funkce | Description |
|---|---|
| Sqlexecdirect | Okamžité spuštění příkazu SQL bez přípravy |
| Sqlexecute | Provedení dříve připraveného příkazu SQL |
| SQLCancel | Zrušení provádění probíhajícího příkazu |
| SQLNativeSql | Překlad syntaxe ODBC SQL do nativního dialektu SQL ovladače |
| Sqlendtran | Potvrzení nebo vrácení transakce v připojení nebo prostředí |
Vytvoření vazby parametrů a sloupců
Pomocí těchto funkcí můžete svázat proměnné aplikace s parametry SQL a sloupci sady výsledků.
| Funkce | Description |
|---|---|
| Sqlbindparameter | Vytvoření vazby vyrovnávací paměti aplikace na značku parametru příkazu SQL |
| Sqlbindcol | Vytvoření vazby vyrovnávací paměti aplikace ke sloupci sady výsledků |
| Sqlparamdata | Získání dalšího parametru, který potřebuje data během operací provádění dat |
| Sqlputdata | Odesílání dat parametrů v blocích během provádění příkazu |
| Sqldescribeparam | Načtení datového typu a velikosti značky parametru |
| SQLNumParams | Počet parametrů v připraveném příkazu |
Načtení a zpracování výsledků
Tyto funkce slouží k načtení dat ze sad výsledků a zpracování výsledků dotazu.
| Funkce | Description |
|---|---|
| SqlFetch | Načtení další sady řádků dat a vrácení hodnot vázaného sloupce |
| Sqlfetchscroll | Načtení sady řádků na absolutní nebo relativní pozici v sadě výsledků |
| Sqlgetdata | Načtení dat pro jeden nevázaný sloupec nebo velká data v blocích |
| Sqlmoreresults | Přechod na další sadu výsledků, když příkaz vrátí více výsledků |
| SQLRowCount | Získejte počet řádků ovlivněných INSERT, UPDATE, nebo DELETE výroky |
| SQLCloseCursor | Zavřete kurzor a zahoďte čekající výsledky. |
| SQLGetCursorName | Načtení názvu přidruženého k kurzoru příkazu |
Zjišťování schématu a metadat
Pomocí těchto funkcí můžete dotazovat informace o schématu databáze, jako jsou tabulky, sloupce a klíče.
| Funkce | Description |
|---|---|
| Sqltables | Výpis tabulek, zobrazení a dalších objektů podobných tabulkám ve zdroji dat |
| Sqlcolumns | Výpis sloupců a jejich atributů pro zadané tabulky |
| SQLPrimaryKeys | Načtení sloupců primárního klíče pro tabulku |
| SQLForeignKeys | Výpis cizích klíčů pro tabulku nebo cizí klíče v jiných tabulkách, které na ni odkazují |
| Sqlspecialcolumns | Identifikace sloupců, které jednoznačně identifikují řádek nebo se automaticky aktualizují |
| SQLStatistics | Načtení informací o indexu a statistiky tabulek |
| SQLProcedures | Výpis uložených procedur dostupných ve zdroji dat |
| Sqlprocedurecolumns | Popis vstupních/výstupních parametrů a výsledných sloupců pro uložené procedury |
Metadata sady sloupců a výsledků
Pomocí těchto funkcí můžete prozkoumat strukturu sad výsledků a atributů sloupců.
| Funkce | Description |
|---|---|
| SQLDescribeCol | Získání názvu sloupce, typu, velikosti a hodnoty null pro sloupec výsledku |
| Sqlcolattribute | Načtení konkrétního atributu sloupce sady výsledků |
| SQLNumResultCols | Počet sloupců v sadě výsledků |
| Sqlgettypeinfo | Výpis datových typů SQL podporovaných zdrojem dat |
Oprávnění a zabezpečení
Pomocí těchto funkcí můžete načíst informace o oprávněních pro databázové objekty.
| Funkce | Description |
|---|---|
| SQLTablePrivileges | Výpis oprávnění udělených pro tabulky ve zdroji dat |
| SQLColumnPrivileges | Oprávnění seznamu udělená pro konkrétní sloupce tabulky |
Atributy prostředí a příkazů
Tyto funkce slouží ke konfiguraci chování prostředí ODBC a příkazů.
| Funkce | Description |
|---|---|
| SQLSetEnvAttr | Nastavení atributů prostředí, jako je verze ODBC a sdružování připojení |
| SQLGetStmtAttr | Načtení aktuální hodnoty atributu příkazu |
| SQLSetStmtAttr | Konfigurace chování příkazů, jako je typ kurzoru a vypršení časového limitu dotazu |
Deskriptory
Pomocí těchto funkcí můžete přímo manipulovat se záznamy popisovače pro pokročilé zpracování parametrů a sloupců.
| Funkce | Description |
|---|---|
| Sqlgetdescfield | Načtení jednoho pole ze záznamu popisovače |
| SQLSetDescField | Nastavení jednoho pole v záznamu popisovače |
| Sqlsetdescrec | Nastavení více polí v záznamu popisovače jedním voláním |
Informace o diagnostice a ovladači
Pomocí těchto funkcí můžete načíst informace o chybách a možnosti ovladače dotazů.
| Funkce | Description |
|---|---|
| Sqlgetdiagfield | Načtení diagnostického pole z prostředí, připojení nebo příkazu |
| Sqlgetinfo | Získání obecných informací o možnostech ovladače a zdroje dat |
| FUNKCE SQLGetFunctions | Určení funkcí ODBC, které ovladač podporuje |
Vyčištění prostředků
Tyto funkce slouží k uvolnění prostředků a bezplatných prostředků.
| Funkce | Description |
|---|---|
| SQLFreeHandle | Uvolnění prostředí, připojení, příkazu nebo popisovače popisovače |
| Sqlfreestmt | Prostředky bezplatného příkazu, zavření kurzorů nebo zrušení vazby parametrů a sloupců |