Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Az SQL Server Native Client ODBC illezőprogramja nem támogatja a vegyes (kulcskészlet/dinamikus) kurzormodellt. A kulcskészlet méretének beállítása SQL_ATTR_KEYSET_SIZE segítségével sikertelen, ha az értékhalmaz nem egyenlő 0-val.
Az alkalmazás minden utasításon beállítja SQL_ATTR_ROW_ARRAY_SIZE, hogy kimondja, hány sor tér vissza egy SQLFetch vagy SQLFetchScroll függvényhíváson. Szerver kurzort jelölő utasítások esetén az illesztőprogram SQL_ATTR_ROW_ARRAY_SIZE-t használ arra, hogy meghatározza, mekkora a sorblokk a szerver generál a kurzor által generált fetch kérés teljesítéséhez. A dinamikus kurzor blokkméretén belül a sortagság és sorrend rögzített, ha a tranzakciós izolációs szint elegendő ahhoz, hogy a kötelezett tranzakciók ismételhető olvasmányai legyenek. A kurzor teljesen dinamikus azon a blokkon kívül, amelyet ez az érték jelez. A szerver kurzorblokk mérete teljesen dinamikus, és bármikor megváltoztatható a fetch feldolgozás során.
SQLSetStmtAttr and Table-Valued Parameters
Az SQLSetStmtAttr segítségével SQL_SOPT_SS_PARAM_FOCUS beállítása az alkalmazásparaméter leíróban (APD) azelőtt megközelíthető a leírásmezők megkeresése táblaértékű paraméteroszlopokhoz.
Ha megpróbálják SQL_SOPT_SS_PARAM_FOCUS-t egy olyan paraméter ordinaljára állítani, amely nem táblázatértékű paraméter, az SQLSetStmtAttr SQL_ERROR-et ad vissza, és diagnosztikai rekordot hoznak létre SQLSTATE = HY024 jelzéssel, valamint a "Invalid attribútumérték" üzenettel. SQL_SOPT_SS_PARAM_FOCUS nem változik, amikor SQL_ERROR visszaadják.
Ha SQL_SOPT_SS_PARAM_FOCUS 0-ra állítva visszaállítja a paraméterek leíró rekordjait.
Az SQLSetStmtAttr is használható SQL_SOPT_SS_NAME_SCOPE beállítására. További információért lásd a SQL_SOPT_SS_NAME_SCOPE szakaszt, amely később ebben a témában található.
További információért lásd Table-Valued Paraméter Metadata for Prepared Statements.
További információért a táblázatértékű paraméterekről lásd Table-Valued Paramétereket (ODBC).
SQLSetStmtAttr Support for Sparse Columns
Az SQLSetStmtAttr segítségével SQL_SOPT_SS_NAME_SCOPE beállítása is lehetséges. További információért lásd a SQL_SOPT_SS_NAME_SCOPE szakaszt, amely később ebben a témában található. További információért a ritka oszlopokról lásd: Sparse Columns Support (ODBC).
Nyilatkozat-attribútumok
Az SQL Server Native Client ODBC illezőprogramja támogatja az alábbi illesztőszer-specifikus utasítás attribútumokat is.
SQL_SOPT_SS_CURSOR_OPTIONS
A SQL_SOPT_SS_CURSOR attribútum meghatározza azt, hogy a meghajtó használ-e illesztőspecifikus teljesítményopciókat a kurzorokon. Az SQLGetData nem engedélyezett, ha ezek az opciók be vannak állítva. Az alapértelmezett beállítás SQL_CO_OFF. A ValuePtr érték SQLLEN típusú.
| ValuePtr érték | Description |
|---|---|
| SQL_CO_OFF | Default. Letiltja a gyorsítás, csak olvasható kurzorokat és az automatikus lekérést, lehetővé teszi az SQLGetData átviteli és csak olvasható kurzorokon. Ha SQL_SOPT_SS_CURSOR_OPTIONS SQL_CO_OFF-re van állítva, a kurzor típusa nem változik. Vagyis a csak előretekerésre használható kurzor továbbra is csak előretekerő kurzor marad. A kurzor típusának megváltoztatásához az alkalmazásnak most egy másik kurzortípust kell beállítania SQLSetStmtAttr/SQL_ATTR_CURSOR_TYPE használatával. |
| SQL_CO_FFO | Lehetővé teszi a gyorsítást, csak olvasásra alkalmas kurzorokat, és letiltja az SQLGetData előrehaladó, csak olvasható kurzorokon. |
| SQL_CO_AF | Engedélyezi az automatikus lekérés opciót bármely kurzortípuson. Ha ezt az opciót állítják be egy utasításkezelőre, az SQLExecute vagy SQLExecDirect implicit SQLFetchScroll (SQL_FIRST) generálja. A kurzort megnyitják, és az első sorok egyetlen körúttal visszakerülnek a szerverhez. |
| SQL_CO_FFO_AF | Lehetővé teszi a gyorsításra használható kurzorokat az automatikus lefoglalás opcióval. Ugyanaz, mintha mind a SQL_CO_AF, mind a SQL_CO_FFO meg lenne jelölve. |
Amikor ezek az opciók beállítottak, a szerver automatikusan bezárja a kurzort, amikor felismeri, hogy az utolsó sort lehozták. Az alkalmazásnak továbbra is hívnia kell SQLFreeStmt (SQL_CLOSE) vagy SQLCloseCursort, de az illesztőprogramnak nem kell a zárási értesítést küldenie a szervernek.
Ha a kiválasztó lista tartalmaz szöveg-, ntext- vagy képoszlopot , a gyorsításra vezető kurzor dinamikus kurzorrá alakul, és engedélyezett az SQLGetData használata.
SQL_SOPT_SS_DEFER_PREPARE
A SQL_SOPT_SS_DEFER_PREPARE attribútum határozza meg, hogy az utasítást azonnal elkészítik-e, vagy elhalasztják, amíg az SQLExecute, SQLDescribeCol vagy SQLDescribeParam el nem futnak. Az SQL Server 7.0-ban és korábbi verziókban ezt a tulajdonságot figyelmen kívül hagyják (nincs halasztott előkészület). A ValuePtr érték SQLLEN típusú.
| ValuePtr érték | Description |
|---|---|
| SQL_DP_ON | Default. Az SQLPrepare függvény hívása után az utasítás előkészítése elhalasztódik, amíg az SQLExecute meghívása vagy a metaproperty művelet (SQLDescribeCol vagy SQLDescribeParam) végrehajtása nem történik. |
| SQL_DP_OFF | A nyilatkozatot az SQLPrepare végrehajtása után készítik el. |
SQL_SOPT_SS_REGIONALIZE
A SQL_SOPT_SS_REGIONALIZE attribútumot használják az adatátalakítás meghatározására az állítás szintjén. Az attribútum arra készteti az illesztőt, hogy tiszteletben tartsa a kliens helyi beállítását, amikor dátum, idő- és valutaértékeket karakterláncokká alakít. Az átváltás az SQL Server natív adattípusairól csak karakter sorokra történik.
A ValuePtr érték SQLLEN típusú.
| ValuePtr érték | Description |
|---|---|
| SQL_RE_OFF | Default. Az illezőprogram nem konvertálja a dátum, idő- és pénzadatokat karakterlánc adatává a kliens helyi beállítás használatával. |
| SQL_RE_ON | Az illesztőprogram a kliens helyi beállítást használja, amikor dátum, idő és valuta adatokat karakterlánc adatokká alakít. |
A regionális konverziós beállítások a valuta, numerikus, dátum- és időpont adattípusokra vonatkoznak. Az átváltási beállítás csak akkor alkalmazható kimeneti átváltásokra, amikor a pénz, szám, dátum vagy idő értékeket karakterláncokká alakítják át.
Note
Amikor a SQL_SOPT_SS_REGIONALIZE kijelentésopció be van kapcsolva, az illesztőprogram a jelenlegi felhasználó helyi nyilvántartási beállításait használja. Az illesztőprogram nem tiszteli meg a jelenlegi szál helyét, ha az alkalmazás például a SetThreadLocale hívásával állítja be.
Az adatforrás regionális viselkedésének megváltoztatása alkalmazáshibát okozhat. Egy olyan alkalmazás, amely a dátum láncsorokat elemzi és elvárja, hogy az ODBC által meghatározott dátumsorozatok megjelenjenek, hátrányosan érinthető az érték megváltoztatása.
SQL_SOPT_SS_TEXTPTR_LOGGING
A SQL_SOPT_SS_TEXTPTR_LOGGING attribútum átkapcsolja azokat a műveletek naplózását oszlopoknál, amelyek szöveget vagy képadatokat tartalmaznak. A ValuePtr érték SQLLEN típusú.
| ValuePtr érték | Description |
|---|---|
| SQL_TL_OFF | Letiltja a szöveg - és képadatokon végzett műveletek naplózását. |
| SQL_TL_ON | Default. Lehetővé teszi a szöveg - és képadatokon végzett műveletek naplózását. |
SQL_SOPT_SS_HIDDEN_COLUMNS
A SQL_SOPT_SS_HIDDEN_COLUMNS attribútum az eredményhalmazban rejtett oszlopokat tár fel egy SQL Server SELECT FOR BROWSE utasításban. A meghajtó alapértelmezés szerint nem teszi ki ezeket az oszlopokat. A ValuePtr érték SQLLEN típusú.
| ValuePtr érték | Description |
|---|---|
| SQL_HC_OFF | Default. A FOR BROWSE oszlopok el vannak rejtve az eredményhalmazból. |
| SQL_HC_ON | Nyílt megjelenítés OLDALAS oszlopokhoz. |
SQL_SOPT_SS_QUERYNOTIFICATION_MSGTEXT
A SQL_SOPT_SS_QUERYNOTIFICATION_MSGTEXT attribútum visszaadja az üzenet szövegét a lekérdezési értesítési kérelmhez.
SQL_SOPT_SS_QUERYNOTIFICATION_OPTIONS
A SQL_SOPT_SS_QUERYNOTIFICATION_OPTIONS attribútum megadja a lekérdezési értesítési kéréshez használt opciókat. Ezeket egy stringben határozzák meg, amelynek name=value szintaxisa az alábbiakban van megadva. Az alkalmazás felelős a szolgáltatás létrehozásáért és az értesítések sorból való olvasásáért.
A lekérdezési értesítések opciók láncsorának szintaxisa a következő:
service=<service-name>[;(local database=<database>|broker instance=<broker instance>)]
Például:
service=mySSBService;local database=mydb
SQL_SOPT_SS_QUERYNOTIFICATION_TIMEOUT
A SQL_SOPT_SS_QUERYNOTIFICATION_TIMEOUT attribútum megadja, hány másodpercig kell a lekérdezési értesítésnek aktív maradnia. Az alapértelmezett érték 432000 másodperc (5 nap). A ValuePtr érték SQLLEN típusú.
SQL_SOPT_SS_PARAM_FOCUS
A SQL_SOPT_SS_PARAM_FOCUS attribútum megadja a következő SQLBindParameter, SQLGetDescField, SQLSetDescField, SQLGetDescRec és SQLSetDescRec hívások fókuszát.
A SQL_SOPT_SS_PARAM_FOCUS típusa SQLULEN.
Az alapértelmezett 0, ami azt jelenti, hogy ezek a hívások olyan paramétereket címeznek, amelyek megfelelnek az SQL utasítás paraméterjelzőinek. Ha egy táblázatértékű paraméter paraméterére állítva ezek a táblázatértékű paraméter oszlopait hívják meg. Ha olyan értéket állítunk be, amely nem egy táblázatértékű paraméter paraméterszáma, ezek a hívások az IM020 hibát adják vissza: "A paraméterfókusz nem utal egy táblázatértékű paraméterre".
SQL_SOPT_SS_NAME_SCOPE
A SQL_SOPT_SS_NAME_SCOPE attribútum megadja a következő katalógus függvényhívások névterjedelmét. Az SQLColumns által visszaadott eredményhalmaz a SQL_SOPT_SS_NAME_SCOPE beállításától függ.
A SQL_SOPT_SS_NAME_SCOPE típusa SQLULEN.
| ValuePtr érték | Description |
|---|---|
| SQL_SS_NAME_SCOPE_TABLE | Default. Táblázatértékű paraméterek használata esetén azt jelzi, hogy a tényleges táblák metaadatait kell visszaadni. A sparse columns funkció használatakor az SQLColumns csak olyan oszlopokat ad vissza, amelyek nem tagjai a sparse column_set-nek. |
| SQL_SS_NAME_SCOPE_TABLE_TYPE | Azt jelzi, hogy az alkalmazás egy táblatípushoz metaadatot igényel, nem pedig tényleges táblához (a katalógusfüggvényeknek vissza kell adniuk a metaadatokat a táblatípusokhoz). Az alkalmazás ezután a táblázat értékű paraméter TYPE_NAME-jét TableName paraméterként továbbítja. |
| SQL_SS_NAME_SCOPE_EXTENDED | A ritka oszlopok funkció használatakor az SQLColumns minden oszlopot visszaad, függetlenül column_set tagságtól. |
| SQL_SS_NAME_SCOPE_SPARSE_COLUMN_SET | A ritka oszlopok funkció használatakor az SQLColumns csak azokat az oszlopokat adja vissza, amelyek a ritka column_set tagjai. |
| SQL_SS_NAME_SCOPE_DEFAULT | Egyenlő SQL_SS_NAME_SCOPE_TABLE. |
SS_TYPE_CATALOG_NAME és SS_TYPE_SCHEMA_NAME a CatalogName és a SchemaName paraméterekkel együtt használják a táblázatértékű paraméter katalógusának és sémájának azonosítására. Amikor egy alkalmazás befejezte a táblázatértékű paraméterek metaadatai letöltését, vissza kell állítania SQL_SOPT_SS_NAME_SCOPE alapértelmezett értékére, SQL_SS_NAME_SCOPE_TABLE-re.
Amikor SQL_SOPT_SS_NAME_SCOPE SQL_SS_NAME_SCOPE_TABLE-re van állítva, a linkelt szerverekhez tartozó lekérdezések megbuknak. Az SQLColumns vagy SQLPrimaryKeys hívások, amelyek katalógusa szerverkomponenst tartalmaz, meghibásodik.
Ha megpróbálod SQL_SOPT_SS_NAME_SCOPE-t érvénytelen értékre állítani, SQL_ERROR jelenik meg, és diagnosztikai rekordot generálnak SQLSTATE HY024-gyel, valamint az "Invalid attribute value" üzenetet.
Ha egy katalógusfüggvényt, ami nem SQLTables, SQLColumns vagy SQLPrimaryKeys működik, akkor hívják meg, ha SQL_SOPT_SS_NAME_SCOPE értéke nem SQL_SS_NAME_SCOPE_TABLE, akkor SQL_ERROR visszatér. Az SQLSTATE HY010-nél diagnosztikai rekordot generálnak, és az "Function sequence error (SQL_SOPT_SS_NAME_SCOPE is not set to SQL_SS_NAME_SCOPE_TABLE)" üzenetet írnak.