SQLTablePrivileges függvény

Megfelelőség
Bemutatott verzió: ODBC 1.0 Szabványoknak megfelelés: ODBC

Összefoglalás
Az SQLTablePrivileges egy táblálistát és az egyes táblákhoz tartozó jogosultságokat ad vissza. Az illesztőprogram az adott utasításon találatként adja vissza az információt.

Syntax

  
SQLRETURN SQLTablePrivileges(  
     SQLHSTMT      StatementHandle,  
     SQLCHAR *     CatalogName,  
     SQLSMALLINT   NameLength1,  
     SQLCHAR *     SchemaName,  
     SQLSMALLINT   NameLength2,  
     SQLCHAR *     TableName,  
     SQLSMALLINT   NameLength3);  

Arguments

StatementHandle
[Bemenet] Utasításkezelő.

CatalogName
[Bemenet] Asztalkatalógus. Ha egy illesztőprogram bizonyos táblákhoz katalógusokat támogat, 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 táblákat, amelyeknek nincs katalógus. 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] Stringkereső minta sémák nevekhez. 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.

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 kezelik, és az esete nem jelentős. Ha SQL_FALSE, akkor a SchemaName mintaérték-argumentum; szó szerint kezelik, és az esete jelentős.

NameLength2
[Bemenet] Hossz a *SchemaName.

TáblaNév
[Bemenet] Stringkereső minta táblanevekhez.

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 mintaérték-argumentum; szó szerint kezelik, és az esete jelentős.

NameLength3
[Bemenet] Hosszúság a *TableName.

Returns

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_STILL_EXECUTING, SQL_ERROR vagy SQL_INVALID_HANDLE.

Diagnostics

Amikor az SQLTablePrivileges SQL_ERROR vagy SQL_SUCCESS_WITH_INFO értéket ad vissza, egy hozzárendelt SQLSTATE érték megszerezhető SQLGetDiagRec hívásával, amely egy SQL_HANDLE_STMT HandleType és egy HandleType (StatementHandle) segítségével érhető el. Az alábbi táblázat felsorolja az SQLTablePrivileges által gyakran visszaadott SQLSTATE értékeket, és mindegyiket elmagyarázza ezen függvény keretében; 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 a Driver Manager adja vissza, ha a SQLFetch vagy SQLFetchScroll nem SQL_NO_DATA vissza, és a driver, ha SQLFetch vagy SQLFetchScroll SQL_NO_DATA visszaadta.

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. Az SQLTablePrivileges függvényt hívták meg, és mielőtt befejezte volna a végrehajtást, az SQLCancel vagy SQLCancelHandle a StatementHandle-en meghívták. Ezután ismét meghívták az SQLTablePrivileges funkciót a StatementHandle-en.

Az SQLTablePrivileges funkciót hívták meg, és mielőtt befejezte volna a végrehajtást, az SQLCancel vagy SQLCancelHandle a StatementHandle-en egy másik szálból hívták meg egy többszálas alkalmazásban.
HY009 Érvénytelen null mutató használata 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 utasítás attribútuma SQL_TRUE-re volt beállítva, a SchemaName vagy TableName érve pedig null pointer 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 a SQLTablePrivileges 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.

Az egyik névhossz argumentum értéke meghaladta a megfelelő minősítő vagy név maximális hosszértékét.
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) További információért a felfüggesztett állapotról lásd : SQLEndTran függvény.
HYC00 A választható funkció nem implementálva Kijelöltek egy katalógust, és az illesztőprogram vagy adatforrás nem támogatja a katalógusokat.

Sémát határoztak meg, és az illesztőprogram vagy adatforrás nem támogatja a sémákat.

A táblázat sémája, tábla vagy oszlop nevéhez egy stringkereső mintát jelöltek, és az adatforrás nem támogatja az egyik vagy több argumentum keresési mintázatát.

Az illesztőprogram vagy az adatforrás nem támogatja a SQL_ATTR_CONCURRENCY és SQL_ATTR_CURSOR_TYPE utasításattribútumok aktuális beállításainak kombinációját.

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

A SchemaName és TableName argumentumok elfogadják a keresési mintákat. További információért az érvényes keresési mintákról lásd: Mintaérték-érvek.

Az SQLTablePrivileges standard eredményhalmazként adja vissza az eredményeket, TABLE_CAT, TABLE_SCHEM, TABLE_NAME, PRIVILEGE és GRANTEE szerint sorolva.

A TABLE_CAT, TABLE_SCHEM és TABLE_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 és SQL_MAX_TABLE_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.

A következő oszlopok átnevezve lettek az ODBC 3.x-re. 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 7. oszlop (IS_GRANTABLE) mögött további oszlopokat a driverrel 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ógus neve; 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 név; 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ábla neve.
GRANTOR (ODBC 1.0) 4 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) 5 Varchar nem NULL Annak a felhasználónak a neve, akinek a kiváltságot kapta.
PRIVILEGE (ODBC 1.0) 6 Varchar nem NULL Az asztali kiváltság. Lehet az alábbiak egyike, vagy adatforrás-specifikus jogosultság.

SELECT: Az engedélyezett egy vagy több oszlop adatait lekérheti.

INSERT: Az engedélyezett új sorokat helyezhet be egy vagy több oszlop adatait a táblázatba.

UPDATE: Az engedélyezett frissítheti az adatokat egy vagy több oszlopban a táblázatban.

DELETE: Az engedélyezett törölheti az adatsorokat a táblázatból.

HIVATKOZÁSOK: Az engedélyezett jogosult hivatkozhat egy vagy több oszlopra a táblázatban egy korlátozáson belül (például egyedi, referenciális vagy táblázatellenőrző korlátozásra).

Az adott táblajogosultság által engedélyezett cselekvési kör adatforrástól függ. Például a UPDATE jogosult lehetővé teheti, hogy az adományozott frissítse az összes oszlopot egy táblázatban egy adatforráson, és csak azokat az oszlopokat, amelyekre a jogosult UPDATE egy másik adatforrásra jogosult.
IS_GRANTABLE (ODBC 1.0) 7 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

Hasonló függvény kód példáját lásd: SQLColumns.

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
Jogosultságok visszaküldése egy oszlop vagy oszlopok számára SQLColumnPrivileges Function
A táblázat vagy táblák oszlopainak visszaküldése SQLColumns függvény
Egy sor vagy adatblokk előrelépési irányban történő lekérése SQLFetch függvény
Adatblokk beolvasása vagy egy eredményhalmaz görgetése SQLFetchScroll függvény
Táblázatstatisztikák és indexek visszaadása SQLStatistics Function
Adatforrásban található táblák listájának visszaadása SQLTables függvény

Lásd még

ODBC API-referencia
ODBC-fejlécfájlok