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.
Megfelelőség
Bemutatott verzió: ODBC 1.0 Szabványoknak megfelelés: ODBC
Összefoglalás
Az SQLColumnPrivileges egy oszloplistát és a megadott tábla kapcsolódó jogosultságait adja vissza. Az illesztőprogram az adott StatementHandle eredmény halmazában adja vissza az információt.
Syntax
SQLRETURN SQLColumnPrivileges(
SQLHSTMT StatementHandle,
SQLCHAR * CatalogName,
SQLSMALLINT NameLength1,
SQLCHAR * SchemaName,
SQLSMALLINT NameLength2,
SQLCHAR * TableName,
SQLSMALLINT NameLength3,
SQLCHAR * ColumnName,
SQLSMALLINT NameLength4);
Arguments
StatementHandle
[Bemenet] Utasításkezelő.
CatalogName
[Bemenet] Katalógus neve. Ha egy illezser bizonyos katalógusok nevét támogatja, míg másoknál nem, például amikor az illesztőprogram adatokat tölt be különböző adatbázisokból, akkor egy üres string ("") jelzi azokat a katalógusokat, amelyeknek nincs neve.
A CatalogName nem tartalmazhat stringkereső mintát.
Ha a SQL_ATTR_METADATA_ID utasítás attribútuma SQL_TRUE-re van beállítva, a CatalogName azonosítóként kezelik, és az esete nem jelentős. Ha SQL_FALSE, akkor a CatalogName egy átlagos érv; szó szerint kezelik, és az esete jelentős. További információ: A Catalog Functions argumentumai.
NameLength1
[Bemenet] A *CatalogName karakterek hossza.
Séma neve
[Bemenet] Séma neve. Ha egy illesztőprogram támogatja a sémákat bizonyos táblákhoz, de másokhoz nem, például amikor az illeszőr adatokat tölt be különböző adatbázisokból, akkor egy üres string ("") jelzi azokat a táblákat, amelyeknek nincs sémájuk.
A SchemaName nem tartalmazhat string keresési mintát.
Ha a SQL_ATTR_METADATA_ID állítás attribútuma SQL_TRUE-re van beállítva, akkor a SchemaName azonosítóként kezelhető. Ha SQL_FALSE, akkor a SchemaName egy hétköznapi érv; szó szerint kezelik, és az esete jelentős.
NameLength2
[Bemenet] Hossz a *SchemaName.
TáblaNév
[Bemenet] Tábla neve. Ez az érv nem lehet null pointer.
A TableName nem tartalmazhat stringkereső mintát.
Ha a SQL_ATTR_METADATA_ID állítás attribútuma SQL_TRUE-re van beállítva, a TableName azonosítóként kezelik, és az eve nem jelentős. Ha SQL_FALSE, akkor a TableName egy hétköznapi érv; szó szerint kezelik, és az esete jelentős.
NameLength3
[Bemenet] Hosszúság a *TableName.
Oszlopnév
[Bemenet] Láncsorkeresési mintázat oszlopnevekhez.
Ha a SQL_ATTR_METADATA_ID állítás attribútuma SQL_TRUE-re van beállítva, akkor a ColumnName azonosítóként kezelik, és az eve nem jelentős. Ha SQL_FALSE, akkor a ColumnName egy mintaérték argumentum; szó szerint kezelik, és az esete jelentős.
NameLength4
[Bemenet] Hosszúság a *ColumnName.
Returns
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_STILL_EXECUTING, SQL_ERROR vagy SQL_INVALID_HANDLE.
Diagnostics
Amikor az SQLColumnPrivileges SQL_ERROR vagy SQL_SUCCESS_WITH_INFO értéket ad, egy hozzárendelt SQLSTATE értéket lehet elérni, ha az SQLGetDiagRec meghívása egy SQL_HANDLE_STMT HandleType és egy HandleType of StatementHandle (Handle) segítségével érhető el. Az alábbi táblázat felsorolja az SQLColumnPrivileges által gyakran visszaadott SQLSTATE értékeket, és mindegyiket ennek a függvénynek a kontextusában magyarázza; 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.) |
| 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 | A StatementHandle kurzora nyitva volt, és az SQLFetch vagy SQLFetchScroll hívást kapta. Ezt a hibát az illesztőprogram-kezelő adja vissza, ha az SQLFetch vagy az SQLFetchScroll nem adott vissza SQL_NO_DATA, és ha az SQLFetch vagy az SQLFetchScroll visszaadta SQL_NO_DATA. A kurzor nyitva volt a StatementHandle-en, de az SQLFetch vagy SQLFetchScroll nem volt meghívva. |
| 40001 | Szerializálási hiba | A tranzakció egy erőforrás holtpontja miatt lett visszaállítva egy másik tranzakcióval. |
| 40003 | Az utasítás befejezése ismeretlen | A társított kapcsolat a függvény végrehajtása során meghiúsult, és a tranzakció állapota nem határozható meg. |
| 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. |
| HY008 | Művelet megszakítva | Az aszinkron feldolgozás engedélyezve lett a StatementHandle-ben. A függvény meghívása megtörtént, és a végrehajtás befejezése előtt az SQLCancel vagy az SQLCancelHandle meghívása megtörtént az Utasításkezelőben. Ezután a függvény ismét meghívásra került az Utasításkezelőben. A függvény meghívása megtörtént, és a végrehajtás befejezése előtt az SQLCancel vagy az SQLCancelHandle egy másik szálról lett meghívva a StatementHandle-ra egy többszálas alkalmazásból. |
| HY009 | Érvénytelen null mutató használata | A TableName argumentum null mutató volt. A SQL_ATTR_METADATA_ID utasítás attribútumot SQL_TRUE-re állították, a CatalogName argument null mutató volt, és az SQL_CATALOG_NAME InfoType azt mutatja, hogy a katalógusnevek támogatottak. (DM) A SQL_ATTR_METADATA_ID állítás attribútuma SQL_TRUE-re volt beállítva, és a SchemaName vagy ColumnName é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 mindig futott, amikor ezt a 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 módon végrehajtó függvény (nem ez) lett meghívva az StatementHandle-hez , és a függvény meghívásakor továbbra is végrehajtó volt. (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. |
| 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. |
| HY090 | Érvénytelen sztring vagy puffer hossza | (DM) Az egyik névhossz érv értéke kevesebb volt, mint 0, de nem egyenlő SQL_NTS. |
| A névhossz argumentumok egyikének értéke túllépte a megfelelő név maximális hosszértékét. (Lásd: "Hozzászólások.") | ||
| 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 | Megadtak egy katalógusnevet, és az illesztőprogram vagy adatforrás nem támogatja a katalógusokat. Megadtak egy séma nevet, és az illesztőprogram vagy adatforrás nem támogatja a sémákat. Az oszlop nevéhez egy stringkereső mintát szabtak, és az adatforrás nem támogatja az adott argumentum keresési mintáit. A SQL_CONCURRENCY és SQL_CURSOR_TYPE utasítás attribútumok jelenlegi beállításainak kombinációját a meghajtó vagy az adatforrás nem támogatta. A SQL_ATTR_USE_BOOKMARKS utasítás attribútuma SQL_UB_VARIABLE lett beállítva, és a SQL_ATTR_CURSOR_TYPE utasítás attribútum olyan kurzortípusra lett beállítva, amelyhez az illesztőprogram nem támogatja a könyvjelzőket. |
| HYT00 | Az időtúllépés lejárt | A lekérdezés időtúllépési időtartama lejárt, mielőtt az adatforrás visszaadta az eredményhalmazt. Az időtúllépési időszak az SQLSetStmtAttr SQL_ATTR_QUERY_TIMEOUT keresztül van beállítva. |
| 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. |
| IM017 | A lekérdezés aszinkron értesítési módban le van tiltva | Az értesítési modell használata esetén a lekérdezés le van tiltva. |
| IM018 | Az SQLCompleteAsync nem lett meghívva az előző aszinkron művelet végrehajtásához ezen a leírón. | Ha a leíró előző függvényhívása SQL_STILL_EXECUTING ad vissza, és ha az értesítési mód engedélyezve van, az SQLCompleteAsync-et a leírón kell meghívni a művelet utófeldolgozásához és befejezéséhez. |
Comments
Az SQLColumnPrivileges az eredményeket szabványos eredményhalmazként adja vissza, TABLE_CAT, TABLE_SCHEM, TABLE_NAME, COLUMN_NAME és PRIVILEGE sorrendben.
Note
SQLColumnPrivileges nem biztos, hogy minden column privilege-jét visszaad. Például egy illesztőprogram nem feltétlenül adja vissza a pszeudo-oszlopok jogosultságait, például az Oracle ROWID-et. Az alkalmazások bármely érvényes oszlopot használhatnak, függetlenül attól, hogy az SQLColumnPrivileges visszaadja-e azt.
A VARCHAR oszlopok hosszai nincsenek a táblázatban; a tényleges hosszok az adatforrástól függnek. A CATALOG_NAME, SCHEMA_NAME, TABLE_NAME és COLUMN_NAME oszlopok tényleges hosszának meghatározásához egy alkalmazás hívhatja az SQLGetInfo-t a SQL_MAX_CATALOG_NAME_LEN, SQL_MAX_SCHEMA_NAME_LEN, SQL_MAX_TABLE_NAME_LEN és SQL_MAX_COLUMN_NAME_LEN opciókkal.
Note
Az ODBC-katalógusfüggvények általános használatáról, argumentumairól és visszaadott adatairól további információt a Catalog Functions című témakörben talál.
Az alábbi oszlopokat ODBC 3-ra nevezték át. x. Az oszlopnév változása nem befolyásolja a visszafelé kompatibilitást, mivel az alkalmazások oszlopszám alapján kötnek hozzá.
| ODBC 2.0 oszlop | ODBC 3. X oszlop |
|---|---|
| TÁBLÁZAT_JELZŐ | TABLE_CAT |
| TÁBLÁZAT_TULAJDONOS | TABLE_SCHEM |
Az alábbi táblázat az eredményhalmaz oszlopait sorolja fel. A 8. oszlop (IS_GRANTABLE) mögött további oszlopokat a meghajtó definiálhat. Az alkalmazásnak az illesztőgép-specifikus oszlopokhoz úgy kell hozzáférnie, hogy az eredményhalmaz végétől visszaszámol, nem pedig explicit ordinalpozíciót jelölne meg. További információ: Catalog Functions által visszaadott adatok.
| Oszlop neve | Oszlopszám | Adattípus | Comments |
|---|---|---|---|
| TABLE_CAT (ODBC 1.0) | 1 | Varchar | Katalógusazonosító; NULL, ha nem vonatkozik az adatforrásra. Ha egy illezser egyes táblákhoz támogatja a katalógusokat, míg másoknál nem, például amikor az illesztőprogram adatokat tölt be különböző adatbázisokból, akkor üres stringet ("") ad vissza azokra a táblákra, amelyeknek nincs katalógus. |
| TABLE_SCHEM (ODBC 1.0) | 2 | Varchar | Séma azonosító; NULL, ha nem vonatkozik az adatforrásra. Ha egy illezser egyes táblákhoz támogatja a sémákat, míg másoknál nem, például amikor az illesztőprogram adatokat kér különböző adatbázisokból, akkor üres stringet ("") ad vissza azokra a táblákra, amelyeknek nincs sémájuk. |
| TABLE_NAME (ODBC 1.0) | 3 | Varchar nem NULL | Táblázatazonosító. |
| COLUMN_NAME (ODBC 1.0) | 4 | Varchar nem NULL | Oszlop neve. Az illesztőprogram üres stringet ad vissza egy olyan oszlophoz, amelynek nincs neve. |
| GRANTOR (ODBC 1.0) | 5 | Varchar | A jogosultságot adó felhasználó neve; NULL, ha nem vonatkozik az adatforrásra. Minden olyan sornál, ahol a GRANTEE oszlop értéke az objektum tulajdonosa, a GRANTOR oszlop "_SYSTEM" lesz. |
| KEDVEZMÉNYEZETTEK (ODBC 1.0) | 6 | Varchar nem NULL | Annak a felhasználónak a neve, akinek a kiváltságot kapta. |
| PRIVILEGE (ODBC 1.0) | 7 | Varchar nem NULL | Azonosítja az oszlop kiváltságát. Lehet az alábbi (vagy olyan, amelyeket az adatforrás támogat, ha implementáció definiálta): SELECT: A kedvezményezettnek engedélyezett az oszlop adatait letölteni. INSERT: Az engedélyezett új sorokban adhat adatokat az oszlophoz, amelyeket a kapcsolódó táblába helyeznek be. UPDATE: Az engedélyezett frissítheti az adatokat az oszlopban. HIVATKOZÁSOK: Az engedélyezett hivatkozhat az oszlopra egy korlátozáson belül (például egyedi, referenciális vagy táblázatellenőrző korlátozás). |
| IS_GRANTABLE (ODBC 1.0) | 8 | Varchar | Jelzi, hogy a jogosult jogosult-e más felhasználóknak megadni a jogot; "IGEN", "NEM" vagy "NULL", ha ismeretlen vagy nem alkalmazható az adatforrásra. Egy kiváltság vagy megadható, vagy nem, de mindkettő nem. Az SQLColumnPrivileges által visszaadott eredményhalmazban soha nem lesz két sor olyan sor közreműködése, amelyhez az összes oszlop, kivéve az IS_GRANTABLE oszlopot, ugyanazt az értéket tartalmazza. |
Kódpélda
Egy hasonló függvény kód példájáért lásd az SQLColumns függvényt.
Kapcsolódó funkciók
| Információ erről: | Nézze |
|---|---|
| Puffer kötése egy eredményhalmaz oszlopához | SQLBindCol függvény |
| Utasításfeldolgozás megszakítása | SQLCancel függvény |
| A táblázat vagy táblák oszlopainak visszaküldése | SQLColumns függvény |
| Adatblokk beolvasása vagy egy eredményhalmaz görgetése | SQLFetchScroll függvény |
| Több adatsor beolvasása | SQLFetch függvény |
| Visszaadva a jogosultságok egy asztalhoz vagy táblákhoz | SQLTablePrivileges Function |
| Adatforrásban található táblák listájának visszaadása | SQLTables függvény |