SQLColAttribute

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Az SQLColAttribute segítségével előkészített vagy végrehajtott ODBC utasításokhoz lekérheted egy eredményhalmaz oszlopának attribútumját. Az SQLColAttribute előkészített utasítások hívása oda-vissza SQL Server-hez vezet. Az SQL Server Native Client ODBC illesztőprogram az eredményhalmaz oszlopadatait fogadja az utasításvégrehajtás részeként, így az SQLColAttribute hívása SQLExecute vagy SQLExecDirect befejezése után nem igényel szerver vissza-vissza jutását.

Note

Az ODBC oszlopazonosító attribútumok nem elérhetők minden SQL Server eredményhalmazon.

Mezőazonosító Description
SQL_COLUMN_TABLE_NAME Elérhető olyan eredményhalmazokon is, amelyeket szerverkurzorokat generáló utasításokból vagy FOR BROWSE klauzulát tartalmazó SELECT utasításokon keresztül futtattak.
SQL_DESC_BASE_COLUMN_NAME Elérhető olyan eredményhalmazokon is, amelyeket szerverkurzorokat generáló utasításokból vagy FOR BROWSE klauzulát tartalmazó SELECT utasításokon keresztül futtattak.
SQL_DESC_BASE_TABLE_NAME Elérhető olyan eredményhalmazokon is, amelyeket szerverkurzorokat generáló utasításokból vagy FOR BROWSE klauzulát tartalmazó SELECT utasításokon keresztül futtattak.
SQL_DESC_CATALOG_NAME Adatbázis neve. Elérhető olyan eredményhalmazokon is, amelyeket szerverkurzorokat generáló utasításokból vagy FOR BROWSE klauzulát tartalmazó SELECT utasításokon keresztül futtattak.
SQL_DESC_LABEL Minden eredménykészleten elérhető. Az érték megegyezik a SQL_DESC_NAME mező értékével.

A mező csak akkor nulla hosszúságú, ha egy oszlop egy kifejezés eredménye, és az kifejezés nem tartalmaz címkézést.
SQL_DESC_NAME Minden eredménykészleten elérhető. Az érték megegyezik a SQL_DESC_LABEL mező értékével.

A mező csak akkor nulla hosszúságú, ha egy oszlop egy kifejezés eredménye, és az kifejezés nem tartalmaz címkézést.
SQL_DESC_SCHEMA_NAME Tulajdonos neve. Elérhető olyan eredményhalmazokon is, amelyeket szerverkurzorokat generáló utasításokból vagy FOR BROWSE klauzulát tartalmazó SELECT utasításokon keresztül futtattak.

Csak akkor érhető el, ha a tulajdonos neve meg van tüntetve az oszlopban a SELECT utasításban.
SQL_DESC_TABLE_NAME Elérhető olyan eredményhalmazokon is, amelyeket szerverkurzorokat generáló utasításokból vagy FOR BROWSE klauzulát tartalmazó SELECT utasításokon keresztül futtattak.
SQL_DESC_UNNAMED SQL_NAMED az eredményhalmaz összes oszlopára, kivéve, ha egy oszlop olyan kifejezés eredménye, amely nem tartalmaz címkés kiosztást az kifejezés részeként. Amikor SQL_DESC_UNNAMED SQL_UNNAMED-et ad vissza, minden ODBC oszlopazonosító attribútumban nulla hosszúságú string van az oszlophoz.

Az SQL Server Native Client ODBC illezőprogramja ezt SET FMTONLY az utasítást használja a szerver túlterhelésének csökkentésére, amikor az SQLColAttribute előkészített, de nem végrehajtott utasításokra hívják.

Nagy értéktípusok esetén az SQLColAttribute a következő értékeket adja vissza:

Mezőazonosító A változás leírása
SQL leíró megjelenítési mérete Ez a maximális karakterszám, amely szükséges az oszlopból származó adatok megjelenítéséhez. Nagy értékű oszlopok esetén a visszaadott érték SQL_SS_LENGTH_UNLIMITED.
SQL_DESC_LENGTH Az eredményhalmazban az oszlop tényleges hosszát adja vissza. Nagy értékű oszlopok esetén a visszaadott érték SQL_SS_LENGTH_UNLIMITED.
SQL_DESC_OCTET_LENGTH Egy nagy értékű oszlop maximális hosszát adja vissza. SQL_SS_LENGTH_UNLIMITED a korlátlan méret jelzésére szolgál.
SQL_DESC_PRECISION A nagy értékű oszlopok SQL_SS_LENGTH_UNLIMITED értékét adja vissza.
SQL_DESC_TYPE Nagy értékű típusok esetén SQL_VARCHAR, SQL_WVARCHAR és SQL_VARBINARY térít vissza.
SQL_DESC_TYPE_NAME A nagy értéktípusok esetén "varchar", "varbinary", "nvarchar" adják vissza.

Minden verziónál az oszlop attribútumokat csak az első eredményhalmazhoz jelentik, ha több eredményhalmazt generálnak egy előkészített SQL utasításcsoporttal.

Az alábbi oszlopattribútumok az SQL Server Native Client ODBC illezőprogramja által elérhető kiterjesztések. Az SQL Server Native Client ODBC illezőprogramja visszaadja az összes értéket a NumericAttrPtr paraméterben. Az értékek SDWORD-ként (hosszú aláírva) jelennek meg, kivéve a SQL_CA_SS_COMPUTE_BYLIST-t, amely egy WORD tömbre mutató.

Mezőazonosító Visszaadott érték
SQL_CA_SS_COLUMN_HIDDEN* TRUE, ha a hivatkozott oszlop egy rejtett elsődleges kulcs része, amelyet egy Transact-SQL SELECT utasítás támogatására hoztak létre, amely tartalmazza a FOR BROWSE-t.
SQL_CA_SS_COLUMN_ID A COMPUTE záradék eredményoszlopának ordinális pozíciója a jelenlegi Transact-SQL SELECT utasításban.
SQL_CA_SS_COLUMN_KEY* TRUE, ha a hivatkozott oszlop a sor elsődleges kulcsának része, és a Transact-SQL SELECT utasítás tartalmazza a FOR BROWSE-t.
SQL_CA_SS_COLUMN_OP Egész szám, amely megadja az aggregált operátort, amely felelős az értékért egy COMPUTE záradék oszlopban. Az egész számok definíciói a sqlncli.h adatbázisban találhatók.
SQL_CA_SS_COLUMN_ORDER Az oszlop sorrendhelyzete egy ODBC-ben vagy Transact-SQL SELECT utasítás ORDER BY klauzulájában.
SQL_CA_SS_COLUMN_SIZE A maximális hossz, bájtokban, szükséges az oszlopból visszanyert adatérték SQL_C_BINARY változóhoz kötéséhez.
SQL_CA_SS_COLUMN_SSTYPE Az SQL Server oszlopban tárolt natív adattípus. A típusértékek definíciói a sqlncli.h adatbázisban találhatók.
SQL_CA_SS_COLUMN_UTYPE Az SQL Server oszlop felhasználó által definiált adattípusának alapadattípusa. A típusértékek definíciói a sqlncli.h adatbázisban találhatók.
SQL_CA_SS_COLUMN_VARYLEN IGAZ, ha az oszlop adatai hosszában változhatnak, különben HAMIS.
SQL_CA_SS_COMPUTE_BYLIST Mutató egy WORD tömbre (nem aláírt rövidítés), amely megadja a COMPUTE klauzula BY frakciójában használt oszlopokat. Ha a Compute záradék nem határoz meg BY kifejezést, akkor egy NULL mutató jelenik meg.

A tömb első eleme tartalmazza a BY lista oszlopok számát. További elemek az oszlop ordinálisok.
SQL_CA_SS_COMPUTE_ID egy olyan sor kiszámítása, amely egy COMPUTE záradék eredménye a jelenlegi Transact-SQL SELECT utasításban.
SQL_CA_SS_NUM_COMPUTES A jelenlegi Transact-SQL SELECT utasításban megadott Compute klauzulák száma.
SQL_CA_SS_NUM_ORDERS Az ODBC vagy Transact-SQL SELECT utasítás ORDER BY klauzulájában megadott oszlopok száma.

* Elérhető, ha az állítás attribútuma SQL_SOPT_SS_HIDDEN_COLUMNS SQL_HC_ON-re van állítva.

Az SQL Server 2005 (9.x) bevezetett illesztőgép-specifikus leíró mezőket, hogy további információkat biztosítsanak az XML sémagyűjtemény nevének, a séma nevének és a katalógusnévnek jelölésére. Ezek a tulajdonságok nem igényelnek idézőjelet vagy menekülő karaktert, ha nem alfanumerikus karaktereket tartalmaznak. Az alábbi táblázat ezeket az új leíró mezőket sorolja fel:

Oszlop név Típus Description
SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME CharacterAttributePtr Az a katalógus neve, ahol egy XML séma gyűjtemény neve van meghatározva. Ha a katalógus neve nem található meg, akkor ez a változó üres stringet tartalmaz.

Ez az információ az IRD SQL_DESC_SS_XML_SCHEMACOLLECTION_CATALOG_NAME rekordmezőjéből érkezik vissza, amely egy olvasás-írás mező.
SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAM E CharacterAttributePtr Az XML séma gyűjtemény neve a séma neve. Ha a séma neve nem található meg, akkor ez a változó üres stringet tartalmaz.

Ez az információ az IRD SQL_DESC_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME rekordmezőjéből érkezik vissza, amely egy olvasás-írás mező.
SQL_CA_SS_XML_SCHEMACOLLECTION_NAME CharacterAttributePtr Egy XML sémagyűjtemény neve. Ha a név nem található meg, akkor ez a változó üres stringet tartalmaz.

Ez az információ az IRD SQL_DESC_SS_XML_SCHEMACOLLECTION_NAME rekordmezőjéből érkezik vissza, amely egy olvasás-írás mező.

Emellett az SQL Server 2005 (9.x) új, illesztőszer-specifikus leíró mezőket vezetett be, hogy további információkat nyújtsanak egy felhasználói definiált típus (UDT) oszlophoz az eredményhalmazban, vagy egy tárolt eljárás vagy paraméterezett lekérdezés UDT paraméteréhez. Ezek a tulajdonságok nem igényelnek idézőjelet vagy menekülő karaktert, ha nem alfanumerikus karaktereket tartalmaznak. Az alábbi táblázat ezeket az új leíró mezőket sorolja fel:

Az oszlop neve Típus Description
SQL_CA_SS_UDT_CATALOG_NAME CharacterAttributePtr Az UDT-t tartalmazó katalógus neve.
SQL_CA_SS_UDT_SCHEMA_NAME CharacterAttributePtr Az UDT-t tartalmazó séma neve.
SQL_CA_SS_UDT_TYPE_NAME CharacterAttributePtr Az UDT neve.
SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME CharacterAttributePtr A gyűlés a UDT nevét minősítette.

A meglévő leíró mezőazonosító SQL_DESC_TYPE_NAME az UDT nevének megjelölésére szolgál. Az UDT típusú oszlop SQL_DESC_TYPE mezője SQL_SS_UDT.

SQLColAttribute támogatása a kibővített dátum- és időfunkciókhoz

A dátum/időpont típusokhoz visszaadott értékek megtekintése a "Információ visszaküldve az IRD mezőkben" szakaszban a Paraméter és eredmény metaadat részben.

További információért lásd: Dátum és Idő Fejlesztések (ODBC).

SQLColAttribute támogatása nagy CLR UDT-k esetén

Az SQLColAttribute támogatja a nagy CLR felhasználódefiniált típusokat (UDT). További információért lásd: Nagy CLR User-Defined típusok (ODBC).

SQLColAttribute Support for Sparse Columns

Az SQLColAttribute az új implementációs sor descriptor (IRD) mezőn, SQL_CA_SS_IS_COLUMN_SET-en kérdezi, hogy megállapítsa, egy oszlop column_set oszlop-e.

További információért lásd: Sparse Columns Support (ODBC).

Lásd még

SQLColAttribute függvény
ODBC API implementáció részletei
SQLSetStmtAttr