Udostępnij przez


Dojścia instrukcji

Instrukcja jest najbardziej łatwo uważana za instrukcję SQL, taką jak SELECT * FROM Employee. Jednak instrukcja jest bardziej niż tylko instrukcją SQL — składa się ze wszystkich informacji skojarzonych z tą instrukcją SQL, takich jak wszystkie zestawy wyników utworzone przez instrukcję i parametry używane w wykonaniu instrukcji . Instrukcja nie musi nawet mieć zdefiniowanej przez aplikację instrukcji SQL. Na przykład gdy funkcja wykazu, taka jak SQLTables , jest wykonywana na instrukcji, wykonuje wstępnie zdefiniowaną instrukcję SQL zwracającą listę nazw tabel.

Każda instrukcja jest identyfikowana za pomocą uchwytu instrukcji. Instrukcja jest skojarzona z jednym połączeniem i może istnieć wiele instrukcji dotyczących tego połączenia. Niektóre sterowniki ograniczają liczbę aktywnych instrukcji, które obsługują; opcja SQL_MAX_CONCURRENT_ACTIVITIES w narzędziu SQLGetInfo określa liczbę aktywnych instrukcji, które sterownik obsługuje w jednym połączeniu. Instrukcja jest definiowana jako aktywna , jeśli ma oczekujące wyniki, gdzie wyniki są zestawem wyników lub liczbą wierszy, których dotyczy instrukcja INSERT, UPDATE lub DELETE , albo dane są wysyłane z wieloma wywołaniami do sqlPutData.

W kodzie, który implementuje ODBC (Menedżer sterowników albo sterownik), uchwyt instrukcji identyfikuje strukturę zawierającą informacje o instrukcji, takie jak:

  • Stan oświadczenia

  • Bieżąca diagnostyka na poziomie instrukcji

  • Adresy zmiennych aplikacji powiązanych z parametrami instrukcji i kolumnami zestawu wyników

  • Bieżące ustawienia każdego atrybutu wyrażenia

Uchwyty instrukcji są używane w większości funkcji ODBC. W szczególności są one używane w funkcjach w celu powiązania parametrów i kolumn zestawu wyników (SQLBindParameter i SQLBindCol), przygotowywania i wykonywania instrukcji (SQLPrepare, SQLExecute i SQLExecDirect), pobierania metadanych (SQLColAttribute i SQLDescribeCol), pobierania wyników (SQLFetch) i pobierania danych diagnostycznych (SQLGetDiagField i SQLGetDiagRec). Są one również używane w funkcjach wykazu (SQLColumns, SQLTables itd.) i wielu innych funkcjach.

Dojścia instrukcji są przydzielane za pomocą polecenia SQLAllocHandle i zwalniane za pomocą polecenia SQLFreeHandle.