SQLSetStmtAttr függvény

Megfelelőség
Bemutatott verzió: ODBC 3.0 szabványoknak megfelelés: ISO 92

Összefoglalás
SQLSetStmtAttr egy utasításhoz kapcsolódó attribútumokat set.

Note

További információért arról, hogy a Driver Manager mire térképezi ezt a funkciót, amikor egy ODBC 3.x alkalmazás ODBC 2.x illevezetővel dolgozik, lásd a Mapping Replacement Functions for Backward Compatibility of Applications (Mapping Replacement Functions for Backward Compatibility of Applications).

Syntax

  
SQLRETURN SQLSetStmtAttr(  
     SQLHSTMT      StatementHandle,  
     SQLINTEGER    Attribute,  
     SQLPOINTER    ValuePtr,  
     SQLINTEGER    StringLength);  

Arguments

StatementHandle
[Bemenet] Utasításkezelő.

Attribútum
[Bemenet] Beállítási opció, a "Hozzászólások" között szerepel.

ValuePtr
[Bemenet] Az érték, amelyet az attribútumhoz kell társítani. Az attribútum értékétől függően az ValuePtr az alábbiak egyike lesz:

  • Egy ODBC leíró handle.

  • Egy SQLUINTEGER érték.

  • A SQLULEN érték.

  • Egy mutató az alábbiak egyikére:

    • Egy null végű karakterlánc.

    • Egy bináris puffer.

    • SQLLEN, SQLULEN vagy SQLUSMALLINT típusú érték vagy tömb.

    • Egy illesztőgép által definiált érték.

Ha az attribútum argumenta illesztőgép-specifikus érték, akkor a ValuePtr lehet egy aláírt egész szám.

StringLength
[Bemenet] Ha az Attribútum egy ODBC által definiált attribútum, és a ValuePtr egy karakterláncra vagy bináris pufferre mutat, akkor ennek az argumentumnak a *ValuePtr hosszúságának kell lennie. Ha az attribútum ODBC által definiált attribútum, a ValuePtr pedig egész szám, akkor a StringLength figyelmen kívül hagyjuk.

Ha az attribútum illesztőgép által definiált attribútum, az alkalmazás a DriverLength argumentumot beállítva jelzi az attribútum természetét a Driver Manager-nek. A StringLength a következő értékeket kaphatja:

  • Ha a ValuePtr egy karakterlánc mutatója, akkor a StringLength a lánc vagy SQL_NTS hossza.

  • Ha a ValuePtr egy bináris pufferre mutató, akkor az alkalmazás a SQL_LEN_BINARY_ATTR(hosszúság) makró eredményét a StringLength-be helyezi. Ez negatív értéket ad a StringLength-ben.

  • Ha a ValuePtr egy másik értékre mutató, mint egy karakterlánc vagy bináris string, akkor a StringLengthnek SQL_IS_POINTER értéke kell, hogy legyen.

  • Ha a ValuePtr fix hosszúságú értéket tartalmaz, akkor a StringLength vagy SQL_IS_INTEGER, vagy SQL_IS_UINTEGER, ahogy megfelelően.

Returns

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR vagy SQL_INVALID_HANDLE.

Diagnostics

Amikor az SQLSetStmtAttr SQL_ERROR vagy SQL_SUCCESS_WITH_INFO értéket ad, egy hozzárendelt SQLSTATE érték megkapható SQLGetDiagRec hívásával, amely egy SQL_HANDLE_STMT HandleType és egy StatementHandleHandle nevű HandleType (Handle) segítségével érkezik. Az alábbi táblázat felsorolja az SQLSetStmtAttr által gyakran visszaadott SQLSTATE értékeket, és mindegyiket elmagyarázza ezen függvény kontextusában; a "(DM)" jelölés megelőzi a Driver Manager által visszaadott SQLSTATE-leírásokat. Az egyes SQLSTATE-értékekhez társított visszatérési kód SQL_ERROR, kivéve, ha másként van feltüntetve.

SQLSTATE Error Description
01000 Általános figyelmeztetés Illesztőprogram-specifikus tájékoztató üzenet. (A függvény SQL_SUCCESS_WITH_INFO ad vissza.)
01S02 A beállítás értéke módosult Az illeszőr nem támogatta a ValuePtr-ben megadott értéket, vagy a ValuePtr-ben megadott érték érvénytelen volt a megvalósítási feltételek miatt, ezért az illesztőprogram hasonló értéket cserélt. (Az SQLGetStmtAttr meghívható az ideiglenesen helyettesített érték meghatározására.) A helyettesítő érték érvényes a StatementHandle esetében, amíg a kurzor be nem zárul, ekkor a mondattribútum attribútum visszaáll korábbi értékére. A módosítható utasításattribútumok a következők:

SQL_ATTR_CONCURRENCY SQL_ATTR_CURSOR_TYPE SQL_ATTR_KEYSET_SIZE SQL_ATTR_MAX_LENGTH SQL_ATTR_MAX_ROWS SQL_ATTR_QUERY_TIMEOUT SQL_ATTR_ROW_ARRAY_SIZE SQL_ATTR_SIMULATE_CURSOR

(A függvény SQL_SUCCESS_WITH_INFO ad vissza.)
08S01 Kommunikációs kapcsolat hibája Az illesztőprogram és az adatforrás közötti kommunikációs kapcsolat, amelyhez az illesztőprogram csatlakoztatva volt, nem sikerült, mielőtt a függvény befejeződött a feldolgozás.
24000 Érvénytelen kurzorállapot Az Attribútum SQL_ATTR_CONCURRENCY, SQL_ATTR_CURSOR_TYPE, SQL_ATTR_SIMULATE_CURSOR vagy SQL_ATTR_USE_BOOKMARKS volt, és a kurzor nyitva volt.
HY000 Általános hiba Hiba történt, amely miatt nem volt konkrét SQLSTATE, és amelyhez nem definiáltak implementációspecifikus SQLSTATE-t. Az SQLGetDiagRec által a *MessageText pufferben visszaadott hibaüzenet leírja a hibát és annak okát.
HY001 Memóriafoglalási hiba Az illesztőprogram nem tudta lefoglalni a függvény végrehajtásának vagy befejezésének támogatásához szükséges memóriát.
HY009 Érvénytelen null mutató használata Az Attribútumargument egy mondatszám attribútumot azonosított, amely string attribútumot igényelt, míg a ValuePtr érve null mutató volt.
HY010 Függvényütemezési hiba (DM) A StatementHandle-hez társított kapcsolati leíróhoz aszinkron módon végrehajtó függvény lett meghívva. Ez az aszinkron függvény még akkor futott, amikor az SQLSetStmtAttr függvényt hívták.

(DM) SQLExecute, SQLExecDirect vagy SQLMoreResults lett meghívva az Utasításkezelőhöz , és SQL_PARAM_DATA_AVAILABLE ad vissza. Ez a függvény az összes streamelt paraméter adatainak lekérése előtt lett meghívva.

(DM) Egy aszinkron futó függvényt hívtak a StatementHandle számára, és még akkor futott, amikor ezt a függvényt hívták.

(DM) SQLExecute, SQLExecDirect, SQLBulkOperations vagy SQLSetPos lett meghívva az Utasításkezelőhöz , és SQL_NEED_DATA. Ezt a függvényt az összes adatvégrehajtási paraméter vagy oszlop adatküldése előtt hívták meg.
HY011 Az attribútumot most nem lehet beállítani Az Attribútum SQL_ATTR_CONCURRENCY, SQL_ ATTR_CURSOR_TYPE, SQL_ ATTR_SIMULATE_CURSOR vagy SQL_ ATTR_USE_BOOKMARKS volt, és a nyilatkozatot elkészítették.
HY013 Memóriakezelési hiba A függvényhívás nem dolgozható fel, mert a mögöttes memóriaobjektumok nem érhetők el, esetleg a memóriahiány miatt.
HY017 Automatikusan kijelölt leíró handle érvénytelen használata (DM) Az attribútum-érv SQL_ATTR_IMP_ROW_DESC vagy SQL_ATTR_IMP_PARAM_DESC volt.

(DM) Az attribútum érve SQL_ATTR_APP_ROW_DESC vagy SQL_ATTR_APP_PARAM_DESC volt, és a ValuePtr értéke egy implicit módon kijelölt leíró handle volt, amely nem az eredetileg az ARD vagy APD számára kijelölt azonosító fogaló volt.
HY024 Érvénytelen attribútumérték A megadott attribútumérték megadása esetén a ValuePtr érték egy érvénytelen értéket is megadott. (A Driver Manager csak olyan kapcsolati és utasítás attribútumokhoz ad vissza, amelyek diszkrét értékhalmazt fogadnak el, például SQL_ATTR_ACCESS_MODE vagy SQL_ ATTR_ASYNC_ENABLE. Minden más kapcsolati és utasítás attribútumnál az illesztőprogramnak ellenőriznie kell a ValuePtr által megadott értéket.)

Az Attribútumok érve SQL_ATTR_APP_ROW_DESC vagy SQL_ATTR_APP_PARAM_DESC volt, míg a ValuePtr egy kifejezetten kijelölt leíró handle volt, amely nem ugyanazon a kapcsolaton van, mint az StatementHandle argumentum.
HY090 Érvénytelen sztring vagy puffer hossza (DM) *A ValuePtr egy karakterlánc, és a StringLength érve kevesebb volt, mint 0, de nem volt SQL_NTS.
HY092 Érvénytelen attribútum/opcióazonosító (DM) Az Attribútum argumentumhoz megadott érték nem volt érvényes az illesztőprogram által támogatott ODBC verzióra.

(DM) Az Attribútum argumentumhoz megadott érték csak olvasható attribútum volt.
HY117 A kapcsolat ismeretlen tranzakciós állapot miatt fel van függesztve. Csak a leválasztási és írásvédett függvények engedélyezettek. (DM) A felfüggesztett állapotról további információt az SQLEndTran függvényben talál.
HYC00 A választható funkció nem implementálva Az Attribútum argumentumhoz megadott érték érvényes ODBC utasítás attribútum volt az illesztőprogram által támogatott ODBC verzióhoz, de az illesztőprogram nem támogatta.

Az attribútum érve SQL_ATTR_ASYNC_ENABLE volt, és egy SQLGetInfo-hoz hívás SQL_ASYNC_MODE InfoType SQL_AM_CONNECTION-ot ad.

Az attribútum érve SQL_ATTR_ENABLE_AUTO_IPD volt, és a kapcsolat attribútumának értéke SQL_ATTR_AUTO_IPD SQL_FALSE volt.
HYT01 A kapcsolati időkorlát lejárt A kapcsolat időtúllépési időtartama lejárt, mielőtt az adatforrás válaszolt a kérésre. A kapcsolat időtúllépési időszaka az SQLSetConnectAttr SQL_ATTR_CONNECTION_TIMEOUT keresztül van beállítva.
IM001 Az illesztőprogram nem támogatja ezt a függvényt (DM) Az StatementHandle-hez társított illesztőprogram nem támogatja a függvényt.
S1118 Az illesztőprogram nem támogatja az aszinkron értesítést Ha SQLSetStmtAttr-t hívunk SQL_ATTR_ASYNC_STMT_EVENT; Az aszinkron értesítés nem támogatja az illesztőprogramot.

Comments

Az utasítás attribútumai életben maradnak, amíg egy másik SQLSetStmtAttr hívás nem változtatja őket, vagy amíg az utasítást el nem hagyják SQLFreeHandle hívásával. Az SQLFreeStmt hívása a SQL_CLOSE, SQL_UNBIND vagy SQL_RESET_PARAMS opcióval nem állítja vissza az utasítás attribútumokat.

Néhány állítás attribútum támogatja hasonló érték helyettesítését, ha az adatforrás nem támogatja a ValuePtr által megadott értéket. Ilyen esetekben az illesztőprogram SQL_SUCCESS_WITH_INFO-ot és SQLSTATE 01S02-t ad vissza (az opció értéke megváltozott). Például, ha az attribútum SQL_ATTR_CONCURRENCY, a ValuePtr SQL_CONCUR_ROWVER, és ha az adatforrás ezt nem támogatja, akkor az illesztőprogram SQL_CONCUR_VALUES-et helyettesít, és SQL_SUCCESS_WITH_INFO-t ad. A helyettesített érték meghatározásához egy alkalmazás az SQLGetStmtAttr nevű SQLGetStmtAttr nevű eszközt hívja.

A ValuePtr információhalmazának formátuma a megadott attribútumtól függ. Az SQLSetStmtAttr két különböző formátumban fogadja el attribútuminformációt: karakterláncot vagy egész számértéket. Mindegyik formátuma az attribútum leírásában szerepel. Ez a formátum az egyes attribútumokra vonatkozó információkra vonatkozik az SQLGetStmtAttr-ben. Az SQLSetStmtAttrValuePtr argumentumával jelölt karakterláncok hossza StringLength.

Note

Az ODBC 3.x-ben letiltott, hogy a kijelentés attribútumokat a kapcsolati szinten beállítsák, az SQLSetConnectAttr hívásával. Az ODBC 3.x alkalmazásoknak soha nem szabad állítási attribútumokat állítaniuk a kapcsolati szinten. Az ODBC 3.x utasítás attribútumok nem állíthatók be a kapcsolati szinten, kivéve a SQL_ATTR_METADATA_ID és SQL_ATTR_ASYNC_ENABLE attribútumokat, amelyek mind kapcsolati attribútumok, mind az utasítás attribútumok, és beállíthatók a kapcsolati vagy az utasítás szintjén.

Note

Az ODBC 3.x driverek csak akkor kell támogatni ezt a funkciót, ha olyan ODBC 2.x alkalmazásokkal kell működniük, amelyek a ODBC 2.x utasításopciókat a kapcsolati szinten állítják be. További információért lásd: "Állítási opciók beállítása a kapcsolati szinten" az SQLSetConnectOption Mapping alatt a G mellékletben: Driver Guidelines for Backward Compatibility (Driver Guidelines for Backward Compatibility).

Leírás attribútumok, amelyek leíró mezőket állítanak be

Sok állítás attribútum megfelel egy leíró fejlécének mezőjének. Ezeknek az attribútumoknak a beállítása valójában a leíró mezők beállítását eredményezi. Ha a mezőket SQLSetStmtAttr hívással állítjuk be az SQLSetDescField helyett, az az előnye, hogy a függvényhíváshoz nem szükséges descriptor handle beszerzése.

Caution

Az SQLSetStmtAttr hívása egy utasításra más utasításokat is befolyásolhat. Ez akkor történik, amikor az állításhoz kapcsolódó APD vagy ARD kifejezetten el van osztva, és más állításokhoz is kapcsolódik. Mivel az SQLSetStmtAttr módosítja az APD-t vagy az ARD-t, a módosítások minden olyan állításra vonatkoznak, amelyhez ez a leíró kapcsolódik. Ha ez nem a szükséges viselkedés, az alkalmazásnak szét kell választania ezt a leírót a többi utasítástól (az SQLSetStmtAttr hívásával, hogy a SQL_ATTR_APP_ROW_DESC vagy SQL_ATTR_APP_PARAM_DESC mezőt egy másik leíró fogantyúra állítsa be), mielőtt újra hívja az SQLSetStmtAttr-t .

Ha egy leíró mezőt a megfelelő állítás attribútumának beállítása miatt állítanak be, akkor a mező csak azokra a releváns leírókra van állítva, amelyek jelenleg a StatementHandle argumentus által azonosított állításhoz kapcsolódnak, és az attribútumbeállítás nem érinti azokat a leírókat, amelyek a jövőben ehhez az állításhoz társulhatnak. Amikor egy leíró mezőt, amely egyben egy utasítás attribútum, az SQLSetDescField hívásával beállított, akkor a megfelelő utasítás attribútumot állítjuk be. Ha egy explicit módon allokált leíró elkülönül egy állítástól, egy fejlécmezőnek megfelelő utasítás attribútuma visszatér az implicitálisan kijelölt leíró mező értékére.

Amikor egy utasítást kiosztanak (lásd SQLAllocHandle), négy leíró fogantyú automatikusan kerül kiosztásra és hozzárendelve. Az explicit módon kijelölt leíró handle-ek az utasításhoz társíthatók úgy, hogy SQLAllocHandle-t hívunk egy fHandleType SQL_HANDLE_DESC segítségével egy leíró fogantyút kijelölni, majd az SQLSetStmtAttr-t hívják, hogy a leíró handle-t az utasításhoz társítsuk.

Az alábbi táblázatban szereplő utasítás attribútumok a leíró fejlécek mezőihez tartoznak.

Állítás attribútum Fejlécmező Desc.
SQL_ATTR_PARAM_BIND_OFFSET_PTR SQL_DESC_BIND_OFFSET_PTR APD
SQL_ATTR_PARAM_BIND_TYPE SQL_DESC_BIND_TYPE APD
SQL_ATTR_PARAM_OPERATION_PTR SQL_DESC_ARRAY_STATUS_PTR APD
SQL_ATTR_PARAM_STATUS_PTR SQL_DESC_ARRAY_STATUS_PTR IPD
SQL_ATTR_PARAMS_PROCESSED_PTR SQL_DESC_ROWS_PROCESSED_PTR IPD
SQL_ATTR_PARAMSET_SIZE SQL_DESC_ARRAY_SIZE APD
SQL_ATTR_ROW_ARRAY_SIZE SQL_DESC_ARRAY_SIZE ARD
SQL_ATTR_ROW_BIND_OFFSET_PTR SQL_DESC_BIND_OFFSET_PTR ARD
SQL_ATTR_ROW_BIND_TYPE SQL_DESC_BIND_TYPE ARD
SQL_ATTR_ROW_OPERATION_PTR SQL_DESC_ARRAY_STATUS_PTR ARD
SQL_ATTR_ROW_STATUS_PTR SQL_DESC_ARRAY_STATUS_PTR IRD
SQL_ATTR_ROWS_FETCHED_PTR SQL_DESC_ROWS_PROCESSED_PTR IRD

Nyilatkozat-attribútumok

A jelenleg definiált attribútumok és az ODBC verziója, amelyben bevezették őket, az alábbi táblázatban láthatók; Várhatóan több attribútumot definiálnak a vezetők számára, hogy kihasználják a különböző adatforrásokat. Az ODBC számos attribútumot fenntart; a driver fejlesztőknek az Open Group-tól saját, illetőző-specifikus használatukra kell fenntartaniuk az értékeket. További információ: Driver-Specific adattípusok, leírótípusok, információtípusok, diagnosztikai típusok és attribútumok.

Attribute ValuePtr tartalma
SQL_ATTR_APP_PARAM_DESC (ODBC 3.0) Az APD fiók a következő SQLExecute és SQLExecDirect hívásokhoz az utasítás kezelőn. Ennek az attribútumnak az eredeti értéke az a leíró, amelyet implicit módon akkor rendeltek ki, amikor az állítást eredetileg kiosztották. Ha ennek az attribútumnak az értéke SQL_NULL_DESC-re van beállítva, vagy az eredetileg a leíró számára kijelölt fogantyú, akkor egy korábban az utasításfogantyúhoz társított explicit APD handle elválik tőle, és az utasítás fogantyu visszatér az implicit módon kijelölt APD fogantyúhoz.

Ez az attribútum nem állítható be olyan leíró fogantyúra, amelyet egy másik állításhoz implicit módon rendeltek, vagy egy másik leíró fogantyúhoz, amely implicit módon ugyanazon állításon volt beállítva; Az implicit módon kijelölt leíró handle-ek nem köthetők több állításhoz vagy leíró fogantyúhoz.
SQL_ATTR_APP_ROW_DESC (ODBC 3.0) Az ARD fiók a további lekérdezésekhez a kijelentés fogantyúján. Ennek az attribútumnak az eredeti értéke az a leíró, amelyet implicit módon akkor rendeltek ki, amikor az állítást eredetileg kiosztották. Ha ennek az attribútumnak az értéke SQL_NULL_DESC-re van beállítva, vagy az eredetileg a leíró számára kijelölt fogantyú, akkor egy korábban az állítás fogantyújához társított explicit ARD handle elválik tőle, és az utasításfogantyú visszatér az implicit módon kijelölt ARD fogantyúhoz.

Ez az attribútum nem állítható be olyan leíró fogantyúra, amelyet egy másik állításhoz implicit módon rendeltek, vagy egy másik leíró fogantyúhoz, amely implicit módon ugyanazon állításon volt beállítva; Az implicit módon kijelölt leíró handle-ek nem köthetők több állításhoz vagy leíró fogantyúhoz.
SQL_ATTR_ASYNC_ENABLE (ODBC 1.0) Egy SQLULEN érték, amely meghatározza a megadott utasítással hívott függvényt aszinkron módon hajtanak végre:

SQL_ASYNC_ENABLE_OFF = Kapcsold ki az utasításszint aszinkron végrehajtási támogatását (az alapértelmezett).

SQL_ASYNC_ENABLE_ON = Engedélyezze az utasításszintű aszinkron végrehajtás támogatását.

További információt az Aszinkron végrehajtás (Lekérdezési módszer) című témakörben talál.

Azoknál az illezsereknél, amelyek utasításszintű, aszinkron végrehajtást támogatnak, a SQL_ATTR_ASYNC_ENABLE utasítás attribútum csak olvasható. Az értéke megegyezik a kapcsolati szint attribútumának értékével, amely ugyanazzal a névgel rendelkezik, amikor az utasítás handle-jét kijelölték.

Az SQLSetStmtAttr hívása, hogy SQL_ATTR_ASYNC_ENABLE állítsuk be, amikor a SQL_ASYNC_MODE InfoType visszatér, SQL_AM_CONNECTION SQLSTATE HYC00-et ad vissza (opcionális funkció nem implementálva). További információért lásd: SQLSetConnectAttr Function oldal.
SQL_ATTR_ASYNC_STMT_EVENT (ODBC 3.8) Egy SQLPOINTER érték, amely eseménykezelő.

Az aszinkron függvények befejezésének értesítése az SQLSetStmtAttr hívásával engedélyezhető, hogy beállítsuk a SQL_ATTR_ASYNC_STMT_EVENT attribútumot és megadjuk az esemény fogantyúját.
SQL_ATTR_ASYNC_STMT_PCALLBACK (ODBC 3.8) SQLPOINTER az aszinkron callback függvényhez.

Csak a Driver Manager hívhatja meg egy illezser SQLSetStmtAttr funkcióját ezzel a attribútummal.
SQL_ATTR_ASYNC_STMT_PCONTEXT (ODBC 3.8) SQLPOINTER a kontextusstruktúrához

Csak a Driver Manager hívhatja meg egy illezser SQLSetStmtAttr funkcióját ezzel a attribútummal.
SQL_ATTR_CONCURRENCY (ODBC 2.0) Egy SQLULEN érték, amely meghatározza a kurzor egyidejű egységét:

SQL_CONCUR_READ_ONLY = A kurzor csak olvasható. Frissítés nem engedélyezett.

SQL_CONCUR_LOCK = A kurzor a legalacsonyabb szintű zárolást használja, ami elég ahhoz, hogy a sor frissíthető legyen.

SQL_CONCUR_ROWVER = A kurzor optimista egyidejű vezérlést alkalmaz, összehasonlítva olyan sorverziókat, mint az SQLBase ROWID vagy a Sybase TIMESTAMP.

SQL_CONCUR_VALUES = A kurzor optimista egyidejű vezérlést használ, összehasonlítva az értékeket.

A SQL_ATTR_CONCURRENCY alapértelmezett értéke SQL_CONCUR_READ_ONLY.

Ez az attribútum nem lehet megadni egy nyitott kurzorra. További információért lásd: Egyidejű típusok.

Ha a SQL_ATTR_CURSOR_TYPE attribútumot olyan típusra változtatják, amely nem támogatja a jelenlegi SQL_ATTR_CONCURRENCY értéket, akkor a SQL_ATTR_CONCURRENCY értéke a végrehajtáskor változik, és figyelmeztetést adnak ki, amikor SQLExecDirect vagy SQLPrepare hívást kapunk.

Ha az illesztőprogram támogatja a SELECT FOR UPDATE utasítást, és az ilyen utasítást akkor hajtják végre, amikor SQL_ATTR_CONCURRENCY értéke SQL_CONCUR_READ_ONLY-re van állítva, akkor hiba jelenik meg. Ha SQL_ATTR_CONCURRENCY értéke olyan értékre változik, amelyet az illezőprogram támogat valamilyen SQL_ATTR_CURSOR_TYPE értékre, de nem a jelenlegi SQL_ATTR_CURSOR_TYPE értékre, akkor az SQL_ATTR_CURSOR_TYPE értéke a végrehajtáskor változik, és az SQLSTATE 01S02 (Opció értéke változik) akkor jelenik meg, amikor az SQLExecDirect vagy SQLPrepare hívása történik.

Ha a megadott egyidejű megoldást az adatforrás nem támogatja, az illesztőprogram egy másik egyidejű egyidejű helyettesítést alkalmaz, és visszaadja az SQLSTATE 01S02-t (opció értéke változott). SQL_CONCUR_VALUES esetén a sofőr SQL_CONCUR_ROWVER helyettesíti, és fordítva. SQL_CONCUR_LOCK esetén a sofőr sorrendben SQL_CONCUR_ROWVER vagy SQL_CONCUR_VALUES helyettesíti. A helyettesített érték érvényességét csak a végrehajtási időben ellenőrizzük.

További információért SQL_ATTR_CONCURRENCY és a többi kurzor attribútum közötti kapcsolatról lásd: Kurzor jellemzők és Kurzor típus.
SQL_ATTR_CURSOR_SCROLLABLE (ODBC 3.0) Egy SQLULEN érték, amely meghatározza az alkalmazás által szükséges támogatási szintet. Ennek a attribútumnak a beállítása befolyásolja a következő hívásokat az SQLExecDirect és SQLExecute címekre.

SQL_NONSCROLLABLE = A kijelentés fogantyúján nem szükséges görgethető kurzorok. Ha az alkalmazás ezen a fogansón hívja az SQLFetchScroll-t , akkor a FetchOrientation egyetlen érvényes értéke SQL_FETCH_NEXT. Ez az alapértelmezett beállítás.

SQL_SCROLLABLE = A kijelentésfogantyún görgethető kurzorok szükségesek. Az SQLFetchScroll hívásakor az alkalmazás bármilyen érvényes FetchOrientation értéket megadhat, így a kurzor pozicionálása más módokban is elérhető, nem a sorozatos módban.

További információért a görgethető kurzorokról lásd : Görgethető kurzorok. További információért a SQL_ATTR_CURSOR_SCROLLABLE és a többi kurzor attribútum közötti kapcsolatról lásd : Kurzor jellemzők és Kurzor típus
SQL_ATTR_CURSOR_SENSITIVITY (ODBC 3.0) Egy SQLULEN érték, amely meghatározza az utasítás fogantyúján lévő kurzorok láthatóvá teszik-e egy másik kurzor által végrehajtott eredményhalmazon végrehajtott változtatásokat. Ennek a attribútumnak a beállítása befolyásolja a következő hívásokat az SQLExecDirect és SQLExecute címekre. Az alkalmazás visszaolvashatja ennek az attribútumnak az értékét, hogy megkapja annak kezdeti állapotát vagy legutóbb az alkalmazás által beállított állapotát.

SQL_UNSPECIFIED = Nem határozzák meg, mi a kurzor típusa, és hogy a kurzorok láthatóvá teszik-e a kurzor által egy eredményhalmazon végrehajtott változtatásokat. Az utasításfogóponton lévő kurzorok nem, néhány vagy minden ilyen módosítást láthatnak. Ez az alapértelmezett beállítás.

SQL_INSENSITIVE = Az utasítás fogantyúján lévő összes kurzor az eredményhalmazt mutatja anélkül, hogy bármely más kurzor által végrehajtott változtatásokat mutatna be. Az érzéketlen kurzorok csak olvashatók. Ez egy statikus kurzornak felel meg, amelynek egyidejű egyidejű használata csak olvasható.

SQL_SENSITIVE = Az utasítás fogantyúján lévő összes kurzor láthatóvá teszi az eredményhalmaz által végrehajtott összes változást.

További információért a SQL_ATTR_CURSOR_SENSITIVITY és a többi kurzor attribútum közötti kapcsolatról lásd: Kurzor jellemzők és Kurzor típus.
SQL_ATTR_CURSOR_TYPE (ODBC 2.0) Egy SQLULEN érték, amely meghatározza a kurzor típust:

SQL_CURSOR_FORWARD_ONLY = A kurzor csak előre görget.

SQL_CURSOR_STATIC = Az eredményhalmaz adatai statikusak.

SQL_CURSOR_KEYSET_DRIVEN = Az illesztőprogram elmenti és használja a kulcsokat a SQL_ATTR_KEYSET_SIZE utasítás attribútumban megadott sorszám számára.

SQL_CURSOR_DYNAMIC = Az illesztőprogram csak a sorok kulcsait menti és használja.

Az alapértelmezett érték SQL_CURSOR_FORWARD_ONLY. Ez az attribútum nem lehet megadni az SQL utasítás elkészítése után.

Ha a megadott kurzortípust nem támogatja az adatforrás, az illezőprogram más kurzortípust cserél, és visszaadja az SQLSTATE 01S02 (opció értéke megváltozott). Kevert vagy dinamikus kurzor esetén a meghajtó sorrendben billentyűs vagy statikus kurzort helyettesít. Billentyűs kurzorhoz a meghajtó statikus kurzort használ helyette.

További információért a görgethető kurzortípusokról lásd: Görgethető kurzortípusok. További információért a SQL_ATTR_CURSOR_TYPE és a többi kurzor attribútumok közötti kapcsolatról lásd: Kurzor Jellemzők és Kurzor Típus.
SQL_ATTR_ENABLE_AUTO_IPD (ODBC 3.0) Egy SQLULEN érték, amely meghatározza az IPD automatikus populációját:

SQL_TRUE = Az IPD automatikus populációját kapcsolja be egy SQLPrepare hívás után. SQL_FALSE = Az IPD automatikus populációját kikapcsolja egy SQLPrepare hívás után. (Az alkalmazás továbbra is megszerezheti az IPD mező információt SQLDescribeParam hívásával, ha támogatott.) Az állítás attribútumának alapértelmezett értéke SQL_ATTR_ENABLE_AUTO_IPD SQL_FALSE. További információért lásd: Az IPD automatikus populációja.
SQL_ATTR_FETCH_BOOKMARK_PTR (ODBC 3.0) Egy SQLLEN *, amely egy bináris könyvjelző értékre mutat. Amikor az SQLFetchScrollfFetchOrientation SQL_FETCH_BOOKMARK-vel hívja meg, a meghajtó ebből a mezőből veszi fel a könyvjelző értéket. Ez a mező alapértelmezés null mutatót használ. További információért lásd: Scrolling by Bookmark.

Az ebben a mezőben említett értéket nem használják könyvjelzővel történő törlésre, könyvjelző frissítésére vagy könyvjelző alapú lekérésre az SQLBulkOperations esetében, amelyek sorkészlet pufferekben tárolt könyvjelzőket használnak.
SQL_ATTR_IMP_PARAM_DESC (ODBC 3.0) Az IPD fogantyúja. Ennek az attribútumnak az értéke az a leíró, amelyet akkor kaptak, amikor az állítást eredetileg kiosztották. Az alkalmazás nem tudja beállítani ezt az attribútumot.

Ez az attribútum SQLGetStmtAttr hívással visszaszerezhető, de nem állítható be SQLSetStmtAttr hívással.
SQL_ATTR_IMP_ROW_DESC (ODBC 3.0) Az IRD fogantyúja. Ennek az attribútumnak az értéke az a leíró, amelyet akkor kaptak, amikor az állítást eredetileg kiosztották. Az alkalmazás nem tudja beállítani ezt az attribútumot.

Ez az attribútum SQLGetStmtAttr hívással visszaszerezhető, de nem állítható be SQLSetStmtAttr hívással.
SQL_ATTR_KEYSET_SIZE (ODBC 2.0) Egy SQLULEN, amely meghatározza a kulcskészlet sorainak számát egy kulcskészlethez vezetett kurzorhoz. Ha a kulcskészlet mérete 0 (az alapértelmezett), a kurzor teljesen billentyűszett-vezéreléssel működik. Ha a kulcskészlet mérete nagyobb, mint 0, a kurzor keveredik (a kulcskészleten belül kulcsszett, dinamikus a kulcshalmazon kívül). Az alapértelmezett kulcskészlet mérete 0. További információért a billentyűszett-vezérelt kurzorokról lásd aKeyset-Driven Cursors oldalt.

Ha a megadott méret meghaladja a maximális kulcskészlet méretét, az illesztőprogram ezt a méretet helyettesíti, és visszaadja az SQLSTATE 01S02 (opcióérték megváltozott).

Az SQLFetch vagy SQLFetchScroll hibát ad, ha a kulcskészlet mérete nagyobb, mint 0, és kisebb a sorhalmaz-méretnél.
SQL_ATTR_MAX_LENGTH (ODBC 1.0) Egy SQLULEN érték, amely megadja a maximális adatmennyiséget, amit az illezser egy karakterből vagy bináris oszlopból ad. Ha az ValuePtr kisebb, mint az elérhető adatok hossza, akkor a SQLFetch vagy SQLGetData lerövidíti az adatokat, és SQL_SUCCESS ad. Ha az ValuePtr 0 (az alapértelmezett), az illesztőprogram megpróbálja visszaadni az összes elérhető adatot.

Ha a megadott hossz kisebb, mint az adatforrás által visszaküldhető minimális adatmennyiség, vagy nagyobb, mint a forrás által visszaküldhető maximális adatmennyiség, az illesztőprogram ezt az értéket helyettesíti, és SQLSTATE 01S02-t adja vissza (opció értéke változott).

Ennek az attribútumnak az értéke beállítható, egy nyitott kurzoron; azonban a beállítás nem feltétlenül lép hatályba, ebben az esetben az illezser visszaadja az SQLSTATE 01S02-t (opció értéke változott), és visszaállítja az attribútumot az eredeti értékére.

Ez az attribútum a hálózati forgalom csökkentésére szolgál, és csak akkor kell támogatni, ha egy többszintű meghajtóban az adatforrás (nem az illevezető) képes megvalósítani. Ezt a mechanizmust nem szabad az alkalmazásoknak használnia adatok levágására; a befogadott adatok rövidítéséhez az alkalmazásnak meg kell határoznia a maximális pufferhosszt a BufferLength argumentumban az SQLBindCol vagy SQLGetData nyelvben.
SQL_ATTR_MAX_ROWS (ODBC 1.0) Egy SQLULEN érték, amely megfelel a maximális sor számának, amit az alkalmazáshoz vissza kell küldeni egy SELECT utasításhoz. Ha a *ValuePtr 0-val egyenlő (az alapértelmezett), akkor a meghajtó minden sort visszaad.

Ez az attribútum a hálózati forgalom csökkentésére szolgál. Koncepcionálisan akkor alkalmazzák, amikor az eredményhalmaz létrejött, és az eredményhalmazt az első ValuePtr sorokra korlátozza. Ha az eredményhalmaz sorainak száma nagyobb, mint az ValuePtr, az eredményhalmazt lerövidítik.

SQL_ATTR_MAX_ROWS minden eredményhalmazra vonatkozik az állításon, beleértve azokat is, amelyeket a katalógusfüggvények visszaadnak. SQL_ATTR_MAX_ROWS a kurzor sorszámának maximumát állapítja meg.

Egy illeszőrnek nem emulálhatja SQL_ATTR_MAX_ROWS viselkedést SQLFetch vagy SQLFetchScroll esetén (ha az eredményhalmaz méretkorlátai nem valósíthatók meg az adatforrásnál), ha nem garantálja, hogy SQL_ATTR_MAX_ROWS megfelelően lesz megvalósítva.

Driver-definiálva van SQL_ATTR_MAX_ROWS alkalmazható-e más állításokra (például katalógus függvényekre).

Ennek az attribútumnak az értéke beállítható, egy nyitott kurzoron; azonban a beállítás nem feltétlenül lép hatályba, ebben az esetben az illezser visszaadja az SQLSTATE 01S02-t (opció értéke változott), és visszaállítja az attribútumot az eredeti értékére.
SQL_ATTR_METADATA_ID (ODBC 3.0) Egy SQLULEN érték, amely meghatározza, hogyan kezelik a katalógusfüggvények stringargumentjeit.

Ha SQL_TRUE, akkor a katalógusfüggvények string argumentumát azonosítóként kezeljük. Az ügy nem jelentős. Nem diferált sorok esetén a meghajtó eltávolítja a hátsó tereket, és a sort nagybetűkre hajtja. A diferitált sorok esetén a meghajtó eltávolítja az elő- vagy követő tereket, és szó szerint veszi a határolók között lévő szót. Ha ezek közül az egyik érv null mutatóra van állítva, a függvény SQL_ERROR és SQLSTATE HY009-et (null mutató érvénytelen használata) adja vissza.

Ha SQL_FALSE, akkor a katalógusfüggvények stringargumentjeit nem kezelik azonosítóként. Az ügy jelentős. Tartalmazhatnak stringkereső mintát, vagy nem, az érveléstől függően.

Az alapértelmezett érték SQL_FALSE.

Az SQLTablesTableType argumentumát, amely értéklistát vesz fel, nem érinti ez az attribútum.

SQL_ATTR_METADATA_ID a kapcsolati szinten is be lehet. (Az és az SQL_ATTR_ASYNC_ENABLE az egyetlen állítás attribútumok, amelyek egyben kapcsolati attribútumok.)

További információ: A Catalog Functions argumentumai.
SQL_ATTR_NOSCAN (ODBC 1.0) Egy SQLULEN érték, amely jelzi, hogy az illezsernek kell SQL stringeket szkennelnie escape szekvenciák szempontjából:

SQL_NOSCAN_OFF = Az illezser SQL stringeket szkennel escape szekvenciákra (az alapértelmezett).

SQL_NOSCAN_ON = Az illezőprogram nem szkenneli az SQL stringeket escape szekvenciák számára. Ehelyett a meghajtó közvetlenül az adatforrásnak küldi el a kijelentést.

További információért lásd: Escape Sequences in ODBC.
SQL_ATTR_PARAM_BIND_OFFSET_PTR (ODBC 3.0) Egy SQLULEN * érték, amely egy eltolásra mutat, amelyet mutatókhoz adnak hozzá a dinamikus paraméterek kötésének megváltoztatásához. Ha ez a mező nem null, az illesztővezető dehivatkozással kezeli az mutatót, hozzáadja a dereferencia értéket a leíró rekord minden halasztott mezőjéhez (SQL_DESC_DATA_PTR, SQL_DESC_INDICATOR_PTR és SQL_DESC_OCTET_LENGTH_PTR), és az új mutató értékeket használja a kötéskor. Alapértelmezés szerint nullra van állítva.

A kötés eltolást mindig közvetlenül hozzáadják a SQL_DESC_DATA_PTR, SQL_DESC_INDICATOR_PTR és SQL_DESC_OCTET_LENGTH_PTR mezőkhöz. Ha az elmozdulat más értékre változik, az új érték továbbra is közvetlenül hozzáadódik a leíró mezőben lévő értékhez. Az új eloltást nem adják hozzá a mezőértékhez és a korábbi eltolásokhoz.

További információért lásd: Paraméterkötési eltolások.

Ennek az állításnak a attribútuma beállítása beállítja az SQL_DESC_BIND_OFFSET_PTR mezőt az APD fejlécben.
SQL_ATTR_PARAM_BIND_TYPE (ODBC 3.0) Egy SQLULEN érték, amely jelzi a dinamikus paraméterekhez használt kötési orientációt.

Ez a mező SQL_PARAM_BIND_BY_COLUMN-re van beállítva (az alapértelmezett beállítás), hogy oszloponként kötözzék ki.

A soronkénti kötés kiválasztásához ezt a mezőt a struktúra vagy egy puffer példányának hosszára állítjuk be, amely dinamikus paraméterek halmazához van kötve. Ennek a hossznak tartalmaznia kell a teret az összes határérték paraméter és a struktúra vagy puffer bármilyen tömörítésére, hogy biztosítsa, hogy amikor egy határérték címét a megadott hosszal növeljük, az eredmény a következő paraméterkészlet elejére mutat. Az ANSI C méretoperátorának alkalmazásával ez a viselkedés garantált.

További információért lásd: Paraméterek kötő tömbjei.

Ennek az állításnak a attribútumának beállítása az APD fejlécében a SQL_DESC_ BIND_TYPE mezőt állítja be.
SQL_ATTR_PARAM_OPERATION_PTR (ODBC 3.0) Egy SQLUSMALLINT * érték, amely egy SQLUSMALLINT értékekből álló tömbre mutat, amelyeket egy paraméter figyelmen kívül hagyására használnak SQL utasítás végrehajtása során. Minden értéket SQL_PARAM_PROCEED-re állítanak be (a végrehajtandó paraméterhez), vagy SQL_PARAM_IGNORE-re (a paraméter figyelmen kívül hagyásához).

Egy paraméterhalmazt figyelmen kívül lehet hagyni a feldolgozás során, ha az APD-ben SQL_DESC_ARRAY_STATUS_PTR által említett tömbben lévő státuszértéket SQL_PARAM_IGNORE-re állítjuk be. Egy paraméterhalmazt akkor dolgoznak fel, ha annak státuszértéke SQL_PARAM_PROCEED-re van állítva, vagy ha a tömbben nincs elem beállítva.

Ez a mondattútumattribútum null mutatóra állítható, ebben az esetben az illesztőprogram nem adja vissza paraméter státuszértékeket. Ez az attribútum bármikor beállítható, de az új értéket csak akkor használják, amikor legközelebb az SQLExecDirect vagy SQLExecute hívása történik.

Ezt az attribútumot figyelmen kívül hagyjuk, ha nincs rögzített paraméter.

További információért lásd: Paraméterek tömbökének használata.

Ennek az állításnak a attribútumának beállítása az APD fejlécében a SQL_DESC_ARRAY_STATUS_PTR mezőt állítja be.
SQL_ATTR_PARAM_STATUS_PTR (ODBC 3.0) Egy SQLUSMALLINT * érték, amely egy SQLUSMALLINT értékekből álló tömbre mutat, amely minden paramétersorhoz státuszinformációkat tartalmaz az SQLExecute vagy SQLExecDirect hívása után. Ez a mező csak akkor szükséges, ha PARAMSET_SIZE nagyobb, mint 1.

Az állapotértékek a következő értékeket tartalmazhatják:

SQL_PARAM_SUCCESS: Az SQL utasítást sikeresen végrehajtották ezen paraméterkészleten.

SQL_PARAM_SUCCESS_WITH_INFO: Az SQL utasítást sikeresen végrehajtották ezen paraméterkészleten; azonban figyelmeztető információk megtalálhatók a diagnosztikai adatstruktúrában.

SQL_PARAM_ERROR: Hiba volt ennek a paraméterkészletnek a feldolgozásában. További hibainformációk találhatók a diagnosztikai adatstruktúrában.

SQL_PARAM_UNUSED: Ez a paraméterkészlet nem volt használatban, valószínűleg azért, mert egy korábbi paraméterkészlet hibát okozott, ami megszakította a további feldolgozást, vagy mert SQL_PARAM_IGNORE a SQL_ATTR_PARAM_OPERATION_PTR által meghatározott tömbben lévő paraméterhalmazra volt beállítva.

SQL_PARAM_DIAG_UNAVAILABLE: Az illesztőgép monolitikus egységként kezeli a paramétertömböket, így nem generál ilyen szintű hibainformációt.

Ez a mondattútumattribútum null mutatóra állítható, ebben az esetben az illesztőprogram nem adja vissza paraméter státuszértékeket. Ez az attribútum bármikor beállítható, de az új értéket csak akkor használják, amikor legközelebb az SQLExecute vagy SQLExecDirect hívása történik. Fontos megjegyezni, hogy ennek a attribútumnak a beállítása befolyásolhatja az illesztőprogram által végrehajtott kimeneti paraméter viselkedését.

További információért lásd: Paraméterek tömbökének használata.

Ennek a mondattribútumnak a beállítása az IPD fejlécében a SQL_DESC_ARRAY_STATUS_PTR mezőt állítja be.
SQL_ATTR_PARAMS_PROCESSED_PTR (ODBC 3.0) Egy SQLULEN * rekordmező, amely egy pufferre mutat, amelyben visszaadja a feldolgozott paraméterek számát, beleértve a hibahalmazokat is. Nem kap vissza egy számot, ha null mutatóról van szó.

Ennek az állításnak a attribútumának beállítása az IPD fejlécében a SQL_DESC_ROWS_PROCESSED_PTR mezőt állítja be.

Ha az SQLExecDirect vagy SQLExecute hívás, amely kitölti az attribútum által mutatott puffert, nem SQL_SUCCESS vagy SQL_SUCCESS_WITH_INFO nem adja vissza, a puffer tartalma nem definiált.

További információért lásd: Paraméterek tömbökének használata.
SQL_ATTR_PARAMSET_SIZE (ODBC 3.0) Egy SQLULEN érték, amely meghatározza az egyes paraméterekhez tartozó értékek számát. Ha SQL_ATTR_PARAMSET_SIZE nagyobb, mint 1, akkor az APD SQL_DESC_DATA_PTR, SQL_DESC_INDICATOR_PTR és SQL_DESC_OCTET_LENGTH_PTR az APD tömbökre jelöl. Minden tömb kardinalitása megegyezik ennek a mezőnek értékével.

Ezt az attribútumot figyelmen kívül hagyjuk, ha nincs rögzített paraméter.

További információért lásd: Paraméterek tömbökének használata.

Ennek az utasításnak a attribútumának beállítása az APD fejlécében a SQL_DESC_ARRAY_SIZE mezőt állítja be.
SQL_ATTR_QUERY_TIMEOUT (ODBC 1.0) Egy SQLULEN érték, amely azt feleli meg, hány másodperc vár egy SQL utasítás végrehajtására, mielőtt visszatérne az alkalmazáshoz. Ha az ValuePtr 0 (alapértelmezett), nincs időtúllépés.

Ha a megadott időtúllépés meghaladja az adatforrás maximális időkorlátját, vagy kisebb, mint a minimális időkorlát, az SQLSetStmtAttr ezt az értéket helyettesíti, és visszaadja az SQLSTATE 01S02-t (Opció értéke megváltozott).

Fontos megjegyezni, hogy az alkalmazásnak nem kell SQLCloseCursort hívnia az utasítás újrahasználatához, ha egy SELECT utasítás időzített.

A lekérdezési időtúlzás ebben az utasítás attribútumban érvényes mind szinkron, mind aszinkron módban.
SQL_ATTR_RETRIEVE_DATA (ODBC 2.0) An SQLULEN érték:

SQL_RD_ON = SQLFetchScroll , és az ODBC 3.x-benaz SQLFetch adatokat kér, miután a kurzort a megadott helyre helyezte. Ez az alapértelmezett beállítás.

SQL_RD_OFF = SQLFetchScroll és az ODBC 3.x-benaz SQLFetch nem kér adatokat a kurzor elhelyezése után.

Ha SQL_RETRIEVE_DATA SQL_RD_OFF-re állítva az alkalmazás ellenőrizheti, hogy létezik-e egy sor, vagy visszaszerezheti a sorhoz egy könyvjelzőt anélkül, hogy a sorok visszakeresésének többletterhelése lenne. További információért lásd: Görgetés és Hozás sorok.

Ennek az attribútumnak az értéke beállítható, egy nyitott kurzoron; azonban a beállítás nem feltétlenül lép hatályba, ebben az esetben az illezser visszaadja az SQLSTATE 01S02-t (opció értéke változott), és visszaállítja az attribútumot az eredeti értékére.
SQL_ATTR_ROW_ARRAY_SIZE (ODBC 3.0) Egy SQLULEN érték, amely meghatározza az egyes SQLFetch vagy SQLFetchScroll hívások által visszaadott sorok számát. Ez egyben az a sor száma is, amelyet egy könyvjelző tömbben használnak egy SQLBulkOperations tömeges könyvjelző műveletében. Az alapértelmezett érték 1.

Ha a megadott sorhalmaz mérete meghaladja az adatforrás által támogatott maximális sorhalmaz-méretet, az illesztőprogram ezt az értéket helyettesíti, és visszaadja az SQLSTATE 01S02-t (opció értéke megváltoztatva).

További információért lásd: Sorkészlet méret.

Ennek az állításnak a attribútumának beállítása az ARD fejlécében a SQL_DESC_ARRAY_SIZE mezőt állítja be.
SQL_ATTR_ROW_BIND_OFFSET_PTR (ODBC 3.0) Egy SQLULEN * érték, amely egy oldalra mutat, amelyet mutatókhoz adnak hozzá az oszlopadatok kötésének megváltoztatásához. Ha ez a mező nem null, az illesztővezető dehivatkozással kezeli az mutatót, hozzáadja a dereferencia értéket a leíró rekord minden halasztott mezőjéhez (SQL_DESC_DATA_PTR, SQL_DESC_INDICATOR_PTR és SQL_DESC_OCTET_LENGTH_PTR), és az új mutató értékeket használja a kötéskor. Alapértelmezés szerint nullra van állítva.

Ennek az utasítás attribútumának beállítása az ARD fejlécében a SQL_DESC_BIND_OFFSET_PTR mezőt állítja be.
SQL_ATTR_ROW_BIND_TYPE (ODBC 1.0) Egy SQLULEN érték, amely beállítja a kötési orientációt, amelyet akkor használnak, amikor SQLFetch vagy SQLFetchScroll meghívása a kapcsolódó utasításon. Oszloponként történő kötést úgy választják ki, hogy az értéket SQL_BIND_BY_COLUMN-re állítják. Soronként történő kötést úgy választják ki, hogy az értéket egy struktúra vagy egy puffer példányának hosszára állítják, amelybe az eredményoszlopok kötődnek.

Ha hossz van megadva, akkor tartalmaznia kell helyet az összes kötött oszlopnak, valamint a szerkezet vagy puffer bármilyen tömintézésének is, hogy biztosítsa, hogy amikor a kötött oszlop címét a megadott hosszúsággal növeljük, az eredmény a következő sorban ugyanannak az oszlopnak a kezdetére mutat. Ha az ANSI C-ben struktúrákkal vagy uniókkal rendelkező operátor méretét használjuk, ez a viselkedés garantált.

Az oszloponkénti kötés az alapértelmezett kötési orientáció az SQLFetch és SQLFetchScroll esetében.

További információért lásd: Kötési oszlopok blokk kurzorokkal való használatra.

Ennek a mondattribútumnak a beállítása az ARD fejlécében a SQL_DESC_BIND_TYPE mezőt állítja be.
SQL_ATTR_ROW_NUMBER (ODBC 2.0) Egy SQLULEN érték, amely az aktuális sor száma az egész eredményhalmazban. Ha a jelenlegi sor számát nem lehet meghatározni, vagy nincs aktuális sor, a meghajtó 0-at ad vissza.

Ez az attribútum SQLGetStmtAttr hívással visszaszerezhető, de nem állítható be SQLSetStmtAttr hívással.
SQL_ATTR_ROW_OPERATION_PTR (ODBC 3.0) Egy SQLUSMALLINT * érték, amely egy SQLUSMALLINT értékekből álló tömbre mutat, amelyeket egy sor figyelmen kívül hagyására használnak egy tömeges művelet során SQLSetPos használatával. Minden értéket vagy SQL_ROW_PROCEED-re állítanak be (hogy a sor belekerüljön a tömeges műveletbe), vagy SQL_ROW_IGNORE-re (a sor kizárása a tömeges műveletből). (A sorokat nem lehet figyelmen kívül hagyni ezzel a tömbölrel az SQLBulkOperations hívásai során.)

Ez az utasítás attribútumot null mutatóra lehet állítani, ebben az esetben a driver nem adja vissza a sorállapot értékeket. Ez az attribútum bármikor beállítható, de az új értéket csak akkor használják, amikor legközelebb az SQLSetPos hívása történik.

További információért lásd: Sorok frissítése a sorhalmazban SQLSetPos-szal és Sorok törlése a sorhalmazban SQLSetPos-szal.

Ennek az állításnak a attribútuma beállítása beállítja az SQL_DESC_ARRAY_STATUS_PTR mezőt az ARD területén.
SQL_ATTR_ROW_STATUS_PTR (ODBC 3.0) Egy SQLUSMALLINT * érték, amely egy SQLFetch vagy SQLFetchScroll hívás után egy SQLUSMALLINT értékekből álló tömbre mutat, amelyek sorállapot értékeket tartalmaznak. A tömbben annyi elem van, amennyi sor van a sorhalmazban.

Ez az utasítás attribútumot null mutatóra lehet állítani, ebben az esetben a driver nem adja vissza a sorállapot értékeket. Ez az attribútum bármikor beállítható, de az új értéket csak akkor használják, amikor legközelebb az SQLBulkOperations, SQLFetch, SQLFetchScroll vagy SQLSetPos hívása történik.

További információért lásd: A Felhozott sorok száma és az állapot.

Ennek a mondattribútumnak a beállítása az IRD fejlécében a SQL_DESC_ARRAY_STATUS_PTR mezőt állítja be.

Ezt az attribútumot egy ODBC 2.x illesztőgép leképezi az rgbRowStatus tömbre egy SQLExtendedFetch hívásban.
SQL_ATTR_ROWS_FETCHED_PTR (ODBC 3.0) Egy SQLULEN * érték, amely egy pufferre mutat, amelyben vissza lehet adni a SQLFetch vagy SQLFetchScroll hívása után lehozott sorok számát; a sorok száma, amelyet egy SQLSetPos hívás hajt végre egy tömeges művelet által végrehajtott SQL_REFRESH műveleti argumentummal; vagy az SQLBulkOperations által végrehajtott tömeges művelet által érintett sorok száma. Ez a szám tartalmazza a hibasorokat.

További információért lásd: A Felhozott sorok száma és az állapot.

Ennek az állításnak a attribútumának beállítása az IRD fejlécében a SQL_DESC_ROWS_PROCESSED_PTR mezőt állítja be.

Ha az SQLFetch vagy SQLFetchScroll hívása, amely kitölti az attribútummal jelölt puffert, nem adja vissza SQL_SUCCESS vagy SQL_SUCCESS_WITH_INFO, akkor a puffer tartalma nem definiált.
SQL_ATTR_SIMULATE_CURSOR (ODBC 2.0) Egy SQLULEN érték, amely meghatározza a pozícióztatott, frissítő és törlési utasításokat szimuláló illezserek garantálják-e, hogy ezek az utasítások csak egyetlen sort érintenek.

A pozicionált update és delete utasítások szimulálására a legtöbb illezser egy keresett UPDATE vagy DELETE utasítást készít, amely tartalmazza a WHERE záradékot, amely meghatározza az aktuális sor minden oszlopának értékét. Hacsak ezek az oszlopok nem alkotnak egyedi kulcsot, egy ilyen állítás több sorra is hatással lehet.

Annak érdekében, hogy ezek az utasítások csak egy sort érintsenek, az illezőprogram határozza meg az egyedi kulcs oszlopait, és ezeket az oszlopokat hozzáadja az eredményhalmazhoz. Ha egy alkalmazás garantálja, hogy az eredményhalmaz oszlopai egyedi kulcsot alkotnak, a drivernek nem kell ezt megtennie. Ez csökkentheti a végrehajtási időt.

SQL_SC_NON_UNIQUE = Az illesztőprogram nem garantálja, hogy a szimulált pozicionált frissítés vagy törlés utasítások csak egy sort érintenek; a jelentkező felelőssége ezért. Ha egy utasítás több sort érint, az SQLExecute, SQLExecDirect vagy SQLSetPos visszaadja az SQLSTATE 01001-et (Kurzor műveleti üttözés).

SQL_SC_TRY_UNIQUE = Az illesztőprogram megpróbálja garantálni, hogy a szimulált pozicionált frissítés vagy törlés utasítások csak egy sort érintenek. Az illesztő mindig végrehajtja az ilyen utasításokat, még akkor is, ha egynél több sort érinthetnek, például ha nincs egyedi kulcs. Ha egy utasítás több sort érint, az SQLExecute, SQLExecDirect vagy SQLSetPos visszaadja az SQLSTATE 01001-et (Kurzor műveleti üttözés).

SQL_SC_UNIQUE = Az illesztőprogram garantálja, hogy a szimulált pozicionált frissítés vagy törlés utasítások csak egy sort érintenek. Ha az illesztőprogram nem tudja garantálni ezt egy adott utasításra, az SQLExecDirect vagy SQLPrepare hibát ad vissza.

Ha az adatforrás natív SQL támogatást nyújt a pozicionált frissítés és törlés utasításokhoz, és az illesztőprogram nem szimulálja a kurzorokat, akkor SQL_SUCCESS akkor jelenik meg, amikor SQL_SC_UNIQUE kérik SQL_SIMULATE_CURSOR-t. SQL_SUCCESS_WITH_INFO visszaküldik, ha SQL_SC_TRY_UNIQUE vagy SQL_SC_NON_UNIQUE kérnek. Ha az adatforrás a SQL_SC_TRY_UNIQUE szintű támogatást nyújtja, de a meghajtó nem, akkor SQL_SUCCESS visszatér SQL_SC_TRY_UNIQUE-re, SQL_SUCCESS_WITH_INFO pedig SQL_SC_NON_UNIQUE-re.

Ha a megadott kurzorszimulációs típus nem támogatja az adatforrás, az illezőprogram egy másik szimulációs típust helyettesít, és visszaadja az SQLSTATE 01S02 (Opció értéke megváltozott). SQL_SC_UNIQUE esetén a sofőr sorrendben SQL_SC_TRY_UNIQUE vagy SQL_SC_NON_UNIQUE helyettesíti. SQL_SC_TRY_UNIQUE esetén a sofőr helyettesíti SQL_SC_NON_UNIQUE.

Az alapértelmezett SQL_SC_UNIQUE.

További információért lásd: Szimulating Positioned Update and Delete statements.
SQL_ATTR_USE_BOOKMARKS (ODBC 2.0) Egy SQLULEN érték, amely meghatározza az alkalmazás, hogy használ-e könyvjelzőket kurzorral:

SQL_UB_OFF = Kikapcsolt (alapértelmezett)

SQL_UB_VARIABLE = Egy alkalmazás kurzorral ellátott könyvjelzőket használ, és az illesztőprogram változó hosszúságú könyvjelzőket biztosít, ha támogatják azokat. SQL_UB_FIXED az ODBC 3.x-ben elavult. Az ODBC 3.x alkalmazásoknak mindig változó hosszúságú könyvjelzőket kell használniuk, még akkor is, ha ODBC 2.x illezőprogramokkal dolgoznak (amelyek csak 4 bájtos, fix hosszúságú könyvjelzőket támogattak). Ez azért van, mert a fix hosszúságú könyvjelző csak egy speciális eset a változó hosszúságú könyvjelzőnek. ODBC 2.x illesztőprogramdal dolgozva a Driver Manager SQL_UB_VARIABLE SQL_UB_FIXED-re térképezi ki.

Ahhoz, hogy a könyvjelzőket kurzorral használja, az alkalmazásnak meg kell határoznia ezt az attribútumot a SQL_UB_VARIABLE értékkel a kurzor megnyitása előtt.

További információért lásd: Könyvjelzők visszakeresése.

[1] Ezeket a függvényeket csak akkor lehet aszinkronosan nevezni, ha a leíró implementációs leíró, nem pedig alkalmazás-leíró.

Lásd Column-Wise Kötés és Row-Wise kötözés.

Információ erről: Nézze
Utasításfeldolgozás megszakítása SQLCancel függvény
Kapcsolati attribútum beállításának visszaadása SQLGetConnectAttr függvény
Utasításattribútum beállításának visszaadása SQLGetStmtAttr függvény
Kapcsolati attribútumot beállítás SQLSetConnectAttr függvény
A leíró egyetlen mező beállítása SQLSetDescField függvény

Lásd még

ODBC API-referencia
ODBC-fejlécfájlok