Megosztás:


Nyilatkozati fogópontok

Az utasítást a legegyszerűbben SQL-utasításnak tekintjük, például SELECT * FROM Employee. Az utasítás azonban több, mint egy SQL-utasítás – az adott SQL-utasításhoz társított összes információból áll, például az utasítás által létrehozott eredményhalmazokból és az utasítás végrehajtásához használt paraméterekből. Egy utasításnak még alkalmazás által definiált SQL-utasítással sem kell rendelkeznie. Ha például egy katalógusfüggvény, például az SQLTables egy utasításon fut, egy előre definiált SQL-utasítást hajt végre, amely a táblanevek listáját adja vissza.

Minden utasítást egy utasítás-azonosító azonosít. Egy utasítás egyetlen kapcsolathoz van társítva, és az adott kapcsolaton több utasítás is lehet. Egyes illesztőprogramok korlátozzák az általuk támogatott aktív utasítások számát; az SQLGetInfo SQL_MAX_CONCURRENT_ACTIVITIES beállítása határozza meg, hogy az illesztőprogram hány aktív utasítást támogat egyetlen kapcsolaton. Az utasítás aktívnak van definiálva, ha az eredmények függőben vannak, ahol az eredmények lehetnek egy eredményhalmaz vagy az INSERT, UPDATE vagy DELETE utasítás által érintett sorok száma, vagy ha adatok küldése történik több SQLPutData hívással.

Az ODBC-t (illesztőprogram-kezelőt vagy illesztőprogramot) megvalósító kódrészleten belül az utasításkezelő azonosítja az utasításadatokat tartalmazó struktúrát, például:

  • Az állítás állapota

  • Az aktuális utasításszintű diagnosztika

  • Az utasítás paramétereihez és az eredményhalmaz oszlopaihoz kötött alkalmazásváltozók címei

  • Az egyes utasításattribútumok aktuális beállításai

Az utasításfogópontok a legtöbb ODBC-függvényben használhatók. A függvények többek között paraméterek és eredményhalmaz-oszlopok kötésére használják őket (SQLBindParameter és SQLBindCol), utasítások előkészítésére és végrehajtására (SQLPrepare, SQLExecute és SQLExecDirect), metaadatok lekérésére (SQLColAttribute és SQLDescribeCol), eredmények lekérésére (SQLFetch), valamint diagnosztika lekérésére (SQLGetDiagField és SQLGetDiagRec). A katalógusfüggvényekben (SQLColumns, SQLTables stb.) és számos más függvényben is használják őket.

Az utasításleírók az SQLAllocHandle-lel vannak lefoglalva, és az SQLFreeHandle-lel szabadíthatók fel.