Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Az Open Database Connectivity (ODBC) egy Microsoft Win32 API, amely lehetővé teszi az alkalmazások számára az ODBC-kompatibilis adatforrásokban lévő adatok elérését. Ez a cikk bemutatja, hogyan dolgozza fel az ODBC a függvényhívásokat, kezeli a kezeléseket, hogyan kommunikál az illesztőprogramokkal, és hogyan biztosít diagnosztikát. Ezáltal a fejlesztők jobban megértik, hogyan működik az ODBC az alkalmazások, az Illesztőprogram-kezelő és az adatbázis-illesztőprogramok között.
Az SQL Server natív ügyfél ODBC-illesztőprogramjának referenciája nem dokumentál minden ODBC-függvényt. Ezeket a függvényeket csak az SQL Server natív ügyfél ODBC-illesztőprogramjára jellemző paraméterekkel vagy viselkedésekkel dokumentálja.
Az SQL Server natív ügyfél ODBC-illesztőprogramja megfelel az ODBC 3.51 specifikációnak. A teljes referenciaanyagért töltse le a Microsoft Data Access Components SDK-t az Adathozzáférési és tárolási fejlesztői központból , vagy tekintse meg az ODBC Programozó referenciaanyagát.
Az ODBC API működése
Az ODBC szabványosított felületet biztosít az alkalmazások és az adatbázis-illesztőprogramok között. Amikor az alkalmazás meghív egy ODBC-függvényt, a hívás több rétegen halad át, mielőtt elérnék az adatforrást. Ennek az architektúrának a megértése segít a hatékonyabb kódírásban és a csatlakozási problémák elhárításában.
ODBC-leírómodell
Az ODBC négy hierarchikus leírótípust használ az állapot kezeléséhez:
| Fogópont típusa | Cél |
|---|---|
| Környezet (HENV) | Globális ODBC-beállítások és verziószámozás |
| Kapcsolat (HDBC) | Egy adott adatforráshoz való kapcsolódást jelöl |
| Utasítás (HSTMT) | SQL-utasítások, paraméterek és eredményhalmazok kezelése |
| Leíró (HDESC) | Paraméterek és oszlopok metaadatait tárolja |
Illesztőprogram-kezelő és illesztőprogram-interakció
- Az alkalmazás ODBC API-hívást kezdeményez.
- Az Illesztőprogram-kezelő ellenőrzi a paramétereket, és küldi el a hívást.
- Az illesztőprogram interakcióba lép az adatforrással.
- Az eredmények visszafolynak az illesztőprogram-kezelőn keresztül az alkalmazásba.
Függvényhívás életciklusa
- Leírók lefoglalása.
- Környezet- vagy kapcsolatattribútumok beállítása.
- Csatlakozás adatforráshoz.
- SQL-utasítások előkészítése vagy végrehajtása.
- Kötési paraméterek vagy eredményoszlopok.
- Sorok beolvasása.
- Szabad fogópontok.
Diagnosztika és hibakezelés
Használja a következő diagnosztikai függvényeket:
SQLGetDiagRecSQLGetDiagField
A diagnosztika környezeti, kapcsolati vagy utasításkezelőkre is vonatkozhat.
Unicode és ANSI-hívások
Az ODBC kétféle függvényt biztosít:
-
ANSI-függvények , például
SQLExecDirectA -
Unicode-függvények , például
SQLExecDirectW
Unicode API-k használata modern alkalmazásokhoz.
Szálkezelés és készletezés
- A szál biztonsága attól függ, hogy az alkalmazás hogyan konfigurálja az illesztőprogramot és az Illesztőprogram-kezelőt.
- A kapcsolat többletterhelésének csökkentése érdekében engedélyezze a kapcsolatkészletezést mindkét szinten.
ODBC API-referencia
A következő szakaszok feladat szerint csoportosítják az ODBC API-függvényeket. Minden bejegyzés az SQL Server natív ügyfélillesztő részletes referenciaoldalára mutat.
Kapcsolat és adatforrás
Ezekkel a függvényekkel hozhat létre, konfigurálhat és kezelhet kapcsolatokat az SQL Serverrel.
| Funkció | Description |
|---|---|
| SQLConnect | Adatforráshoz való kapcsolat létrehozása DSN-sel, felhasználói azonosítóval és jelszóval |
| SQLDriverConnect | Csatlakozás illesztőprogram-specifikus kulcsszavakkal rendelkező kapcsolati sztring használatával |
| SQLBrowseConnect | Kapcsolati attribútumok interaktív felderítése kapcsolati sztring létrehozásához |
| SQLConfigDataSource | Adatforrásnevek (DSN-ek) programozott létrehozása, módosítása vagy törlése |
| SQLDrivers | Az összes telepített ODBC-illesztőprogram és attribútumuk listázása |
| SQLGetConnectAttr | Kapcsolatattribútum aktuális értékének lekérése |
| SQLSetConnectAttr | Kapcsolati viselkedés konfigurálása, például időtúllépések és tranzakcióelkülönítés |
SQL-utasítások végrehajtása
Ezekkel a függvényekkel készítheti elő, hajthatja végre és kezelheti az SQL-utasításokat.
| Funkció | Description |
|---|---|
| SQLExecDirect | SQL-utasítás azonnali végrehajtása előkészítés nélkül |
| SQLExecute | Korábban előkészített SQL-utasítás végrehajtása |
| SQLCancel | Folyamatban lévő utasítás végrehajtásának megszakítása |
| SQLNativeSql | ODBC SQL-szintaxis fordítása az illesztőprogram natív SQL-dialektusára |
| SQLEndTran | Tranzakció véglegesítése vagy visszaállítása kapcsolaton vagy környezetben |
Kötési paraméterek és oszlopok
Ezekkel a függvényekkel az alkalmazásváltozókat SQL-paraméterekhez és eredményhalmaz-oszlopokhoz köti.
| Funkció | Description |
|---|---|
| SQLBindParameter | Alkalmazáspuffer kötése SQL-utasítás paraméterjelölőhöz |
| SQLBindCol | Alkalmazáspuffer kötése eredményhalmaz-oszlophoz |
| SQLParamData | A következő paraméter lekérése, amely adatokat igényel az adatvégrehajtási műveletek során |
| SQLPutData | Paraméteradatok küldése adattömbökben az utasítás végrehajtása során |
| SQLDescribeParam | Paraméterjelölő adattípusának és méretének lekérése |
| SQLNumParams | A paraméterek számának megszámlálása egy előkészített utasításban |
Eredmények lekérése és feldolgozása
Ezekkel a függvényekkel adatokat kérdezhet le eredményhalmazokból, és feldolgozhatja a lekérdezési eredményeket.
| Funkció | Description |
|---|---|
| SQLFetch | Az adatok következő sorhalmazának beolvasása és a kötött oszlopértékek visszaadása |
| SQLFetchScroll | Sorkészlet beolvasása abszolút vagy relatív pozícióban az eredményhalmazban |
| SQLGetData | Adatok lekérése egyetlen kötetlen oszlophoz vagy nagy adattömbhöz |
| SQLMoreResults | Ugrás a következő eredményhalmazra, ha egy utasítás több eredményt ad vissza |
| SQLRowCount | Az INSERT, UPDATE vagy DELETE utasítások által érintett sorok számának lekérése |
| SQLCloseCursor | A kurzor bezárása és a függőben lévő eredmények elvetése |
| SQLGetCursorName | Az utasítás kurzorához társított név lekérése |
Séma és metaadatok felderítése
Ezekkel a függvényekkel lekérdezheti az adatbázis sémaadatait, például táblákat, oszlopokat és kulcsokat.
| Funkció | Description |
|---|---|
| SQLTables | Táblák, nézetek és más táblázatszerű objektumok listázása az adatforrásban |
| SQLColumns | Oszlopok és attribútumaik listázása megadott táblákhoz |
| SQLPrimaryKeys | Tábla elsődleges kulcsoszlopainak lekérése |
| SQLForeignKeys | Tábla idegen kulcsainak listázása vagy más olyan táblákban lévő idegen kulcsok listázása, amelyek hivatkoznak rá |
| SQLSpecialColumns | Sorok egyedi azonosítására vagy automatikus frissítésére szolgáló oszlopok azonosítása |
| SQLStatistics | Indexadatok és táblastatisztikák lekérése |
| SQLProcedures | Az adatforrásban elérhető tárolt eljárások listázása |
| SQLProcedureColumns | A tárolt eljárások bemeneti/kimeneti paramétereinek és eredményoszlopainak leírása |
Oszlop- és eredménykészlet metaadatai
Ezekkel a függvényekkel megvizsgálhatja az eredményhalmazok és az oszlopattribútumok szerkezetét.
| Funkció | Description |
|---|---|
| SQLDescribeCol | Az eredményoszlop oszlopnevének, típusának, méretének és nullbilitásának lekérése |
| SQLColAttribute | Eredményhalmaz-oszlop adott attribútumának lekérése |
| SQLNumResultCols | Az eredményhalmazban lévő oszlopok számának megszámlálása |
| SQLGetTypeInfo | Az adatforrás által támogatott SQL-adattípusok listázása |
Jogosultságok és biztonság
Ezekkel a függvényekkel lekérheti az adatbázis-objektumok engedélyadatait.
| Funkció | Description |
|---|---|
| SQLTablePrivileges | Az adatforrás tábláiban megadott jogosultságok listázása |
| SQLColumnPrivileges | Tábla adott oszlopaihoz megadott jogosultságok listázása |
Környezet- és utasításattribútumok
Ezekkel a függvényekkel konfigurálhatja az ODBC-környezetet és az utasítás viselkedését.
| Funkció | Description |
|---|---|
| SQLSetEnvAttr | Környezeti attribútumok, például ODBC-verzió és kapcsolatkészletezés beállítása |
| SQLGetStmtAttr | Utasításattribútum aktuális értékének lekérése |
| SQLSetStmtAttr | Utasítás viselkedésének konfigurálása, például a kurzor típusa és a lekérdezés időtúllépése |
Leírók
Ezekkel a függvényekkel közvetlenül kezelheti a leíró rekordokat a speciális paraméter- és oszlopkezeléshez.
| Funkció | Description |
|---|---|
| SQLGetDescField | Egyetlen mező lekérése leíró rekordból |
| SQLSetDescField | Egyetlen mező beállítása egy leíró rekordban |
| SQLSetDescRec | Több mező beállítása egy leíró rekordban egyetlen hívással |
Diagnosztikai és illesztőprogram-információk
Ezekkel a függvényekkel lekérheti a hibainformációkat és a lekérdezésillesztő képességeit.
| Funkció | Description |
|---|---|
| SQLGetDiagField | Diagnosztikai mező lekérése környezetből, kapcsolatból vagy utasításból |
| SQLGetInfo | Általános információk az illesztőprogramról és az adatforrás képességeiről |
| SQLGetFunctions | Az illesztőprogram által támogatott ODBC-függvények meghatározása |
Erőforrás-törlés
Ezekkel a függvényekkel felszabadíthatja a leírókat és az erőforrásokat.
| Funkció | Description |
|---|---|
| SQLFreeHandle | Környezet, kapcsolat, utasítás vagy leíró leíró feloldása |
| SQLFreeStmt | Szabad utasítás típusú erőforrások, kurzorok bezárása vagy összekapcsolt paraméterek és oszlopok leválasztása |