Megosztás:


AZ ODBC API implementálásának részletei

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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ó

  1. Az alkalmazás ODBC API-hívást kezdeményez.
  2. Az Illesztőprogram-kezelő ellenőrzi a paramétereket, és küldi el a hívást.
  3. Az illesztőprogram interakcióba lép az adatforrással.
  4. Az eredmények visszafolynak az illesztőprogram-kezelőn keresztül az alkalmazásba.

Függvényhívás életciklusa

  1. Leírók lefoglalása.
  2. Környezet- vagy kapcsolatattribútumok beállítása.
  3. Csatlakozás adatforráshoz.
  4. SQL-utasítások előkészítése vagy végrehajtása.
  5. Kötési paraméterek vagy eredményoszlopok.
  6. Sorok beolvasása.
  7. Szabad fogópontok.

Diagnosztika és hibakezelés

Használja a következő diagnosztikai függvényeket:

  • SQLGetDiagRec
  • SQLGetDiagField

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