Podpora SQLGetInfo

Když je ODBC 2. x aplikace volá SQLGetInfo do ovladače ODBC 3*.x*, argumenty InfoType v následující tabulce musí být podporovány.

InfoType Returns
SQL_ALTER_TABLE (ODBC 2.0) Poznámka: Tento typ informací není zastaralý; bitové masky ve sloupci vpravo jsou zastaralé. SQLINTEGER bitmaska vyjmenovává klauzule ve ALTER TABLE výroku podporovaném datovým zdrojem.

K určení podporovaných klauzulí se používají následující bitové masky:

SQL_AT_DROP_COLUMN = Je podporována možnost vyhazovat sloupce. Zda to vede k kaskádovému nebo omezujícímu chování, je definováno řidiči. (ODBC 2.0)

SQL_AT_ADD_COLUMN = Je podporována možnost přidat více sloupců v jednom ALTER TABLE příkazu. Tento bit se nekombinuje s jinými SQL_AT_ADD_COLUMN_XXX bity ani SQL_AT_CONSTRAINT_XXX bity. (ODBC 2.0)
SQL_FETCH_DIRECTION (ODBC 1.0)

Typ informace byl zaveden v ODBC 1.0; Každá bitmaska je označena verzí, ve které byla představena.
SQLINTEGER bitmaska vyjmenovává podporované možnosti směru načítání.

Následující bitmasky se používají společně s příznakem k určení, které možnosti jsou podporovány:

SQL_FD_FETCH_NEXT (ODBC 1.0) SQL_FD_FETCH_FIRST (ODBC 1.0) SQL_FD_FETCH_LAST (ODBC 1.0) SQL_FD_FETCH_PRIOR (ODBC 1.0) SQL_FD_FETCH_ABSOLUTE (ODBC 1.0) SQL_FD_FETCH_RELATIVE (ODBC 1.0) SQL_FD_FETCH_BOOKMARK (ODBC 2.0)
SQL_LOCK_TYPES (ODBC 2.0) SQLINTEGER bitmask enumerující podporované typy zámků pro argument fLock v SQLSetPos.

Následující bitmasky se používají spolu s vlajkou k určení, které typy zámků jsou podporovány:

SQL_LCK_NO_CHANGE SQL_LCK_EXCLUSIVE SQL_LCK_UNLOCK
SQL_ODBC_API_CONFORMANCE (ODBC 1.0) Hodnota SQLSMALLINT označující úroveň shody s ODBC.

SQL_OAC_NONE = Žádné

SQL_OAC_LEVEL1 = Podpora úrovně 1

SQL_OAC_LEVEL2 = Podporována úroveň 2
SQL_ODBC_SQL_CONFORMANCE (ODBC 1.0) Hodnota SQLSMALLINT označující SQL gramatiku podporovanou ovladačem. Viz příloha C: SQL gramatika pro definici úrovní souladu SQL.

SQL_OSC_MINIMUM = Minimální podporovaná gramatika

SQL_OSC_CORE = Podpora základní gramatiky

SQL_OSC_EXTENDED = Podporovaná rozšířená gramatika
SQL_POS_OPERATIONS (ODBC 2.0) SQLINTEGER bitmask enumerující podporované operace v SQLSetPos.

Následující bitmasky se používají společně s vlajkou k určení, které možnosti jsou podporovány:

SQL_POS_POSITION (ODBC 2.0) SQL_POS_REFRESH (ODBC 2.0) SQL_POS_UPDATE (ODBC 2.0) SQL_POS_DELETE (ODBC 2.0) SQL_POS_ADD (ODBC 2.0)
SQL_POSITIONED_STATEMENTS (ODBC 2.0) SQLINTEGER bitmask enumerující podporované pozice SQL příkazů.

K určení, které tvrzení jsou podporovány, se používají následující bitmasky:

SQL_PS_POSITIONED_DELETE SQL_PS_POSITIONED_UPDATE SQL_PS_SELECT_FOR_UPDATE
SQL_SCROLL_CONCURRENCY (ODBC 1.0) SQLINTEGER bitmask vyjmenovává možnosti řízení souběžnosti podporované kurzorem.

K určení podporovaných možností se používají následující bitové masky:

SQL_SCCO_READ_ONLY = Kurzor je pouze pro čtení. Nejsou povoleny žádné aktualizace.

SQL_SCCO_LOCK = Kurzor používá nejnižší úroveň uzamčení dostatečnou k tomu, aby bylo možné řádek aktualizovat.

SQL_SCCO_OPT_ROWVER = Kurzor používá optimistickou kontrolu souběžnosti, porovnává verze řádků, například SQLBase ROWID nebo Sybase TIMESTAMP.

SQL_SCCO_OPT_VALUES = Kurzor používá optimistickou kontrolu souběžnosti, porovnává hodnoty.
SQL_STATIC_SENSITIVITY (ODBC 2.0) SQLINTEGER bitmaska, která vyjmenovává, zda aplikace dokáže detekovat změny provedené aplikací na statickém nebo klíčovým kurzoru pomocí SQLSetPos nebo polohovaných příkazů update či delete.

SQL_SS_ADDITIONS = Přidané řádky jsou viditelné kurzoru; kurzor může posunout na tyto řádky. Místo, kde jsou tyto řádky přidány do kurzoru, závisí na ovladači.

SQL_SS_DELETIONS = Vymazané řádky již kurzoru nejsou dostupné a nezanechávají "díru" ve výsledné množině; Po posunutí kurzoru z vymazaného řádku se do tohoto řádku nemůže vrátit.

SQL_SS_UPDATES = Aktualizace řádků jsou viditelné kurzoru; Pokud kurzor posouvá z aktualizovaného řádku a vrací se do aktualizovaného řádku, data vrácená kurzorem jsou aktualizovaná data, nikoli původní data. Tato možnost platí pouze pro statické kurzory nebo aktualizace kurzorů řízených sadou kláves, které klíč neaktualizují. Tato možnost neplatí pro dynamický kurzor ani v případě, že je klávesa změněna ve smíšeném kurzoru.

Zda aplikace dokáže detekovat změny provedené jinými uživateli ve výsledné sadě, včetně dalších kurzorů ve stejné aplikaci, závisí na typu kurzoru.

Aplikace ODBC 3*.x* pracující s ovladačem ODBC 3*.x* by neměla volat SQLGetInfo s argumenty InfoType popsanými v předchozí tabulce, ale měla by používat argumenty ODBC 3*.x* InfoType uvedené v následujícím odstavci. Mezi argumenty InfoType používanými v ODBC 2 neexistuje jednoznačná korelace. x a ty používané v ODBC 3*.x*. Aplikace ODBC 3*.x* pracující s ODBC 2. x driver by naopak měl používat dříve popsané argumenty InfoType .

Některé typy informací v předchozí tabulce jsou nahrazeny typy informací s atributy kurzoru. Tyto zastaralé typy informací jsou SQL_FETCH_DIRECTION, SQL_LOCK_TYPES, SQL_POS_OPERATIONS, SQL_POSITIONED_STATEMENTS, SQL_SCROLL_CONCURRENCY a SQL_STATIC_SENSITIVITY. Nové typy atributů kurzoru jsou SQL_XXX_CURSOR_ATTRIBUTES1and SQL_XXX_CURSOR_ATTRIBUTES2, kde XXX se rovná DYNAMIC, FORWARD_ONLY, KEYSET_DRIVEN nebo STATIC. Každý z nových typů označuje schopnosti ovladače pro jeden typ kurzoru. Pro více informací o těchto možnostech viz popis funkce SQLGetInfo .