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 SQLProcedures visszaadja a konkrét adatforrásban tárolt eljárásnevek listáját.
Az eljárás egy általános kifejezés, amelyet egy futtatható objektum vagy egy elnevezett entitás leírására használnak, amelyet bemeneti és kimeneti paraméterek segítségével lehet megidézni. További információkért a beavatkozásokról lásd a Eljárásokat.
Syntax
SQLRETURN SQLProcedures(
SQLHSTMT StatementHandle,
SQLCHAR * CatalogName,
SQLSMALLINT NameLength1,
SQLCHAR * SchemaName,
SQLSMALLINT NameLength2,
SQLCHAR * ProcName,
SQLSMALLINT NameLength3);
Arguments
StatementHandle
[Bemenet] Utasításkezelő.
CatalogName
[Bemenet] Eljáráskataló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 eljárássémák nevekhez. Ha egy illezser egyes eljárásokhoz támogatja a sémákat, 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 az eljárásokat, amelyeknek nincs sémája.
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.
ProcName
[Bemenet] Stringkeresési minta eljárásnevekhez.
Ha a SQL_ATTR_METADATA_ID állítás attribútuma SQL_TRUE-re van beállítva, a ProcName-et azonosítóként kezelik, és az eve nem jelentős. Ha SQL_FALSE, akkor a ProcName egy mintaérték-argumentum; szó szerint kezelik, és az esete jelentős.
NameLength3
[Bemenet] Hosszúság a *ProcName.
Returns
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_STILL_EXECUTING, SQL_ERROR vagy SQL_INVALID_HANDLE.
Diagnostics
Amikor az SQLProcedures SQL_ERROR vagy SQL_SUCCESS_WITH_INFO értéket ad vissza, egy hozzárendelt SQLSTATE érték elérhető SQLGetDiagRec hívásával, amely egy SQL_HANDLE_STMT HandleType és egy HandleType of StatementHandle (HandleType) segítségével érhető el. Az alábbi táblázat felsorolja az SQLProcedures által gyakran visszaadott SQLSTATE értékeket, és mindegyiket ezen függvény kontextusában magyarázza meg; 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 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 ProcName é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. |
| 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 | Eljáráskatalógust határoztak meg, és az illesztőprogram vagy adatforrás nem támogatja a katalógusokat. Eljárássémát definiáltak, és az illesztőprogram vagy adatforrás nem támogatja a sémákat. A folyamatséma vagy eljárásnév számára egy stringkereső mintát is megadtak, és az adatforrás nem támogatja az egyik vagy több argumentum keresési mintázatait. 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 a kért 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) A StatementHandle hozzátartozó illesztőprogram nem támogatja ezt a funkciót. |
| 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 SQLProcedures felsorolja az összes eljárást a kért tartományban. A felhasználónak lehet engedélye bármelyik eljárás végrehajtására, vagy nem. Az elérhetőség ellenőrzéséhez egy alkalmazás hívhatja az SQLGetInfo-t , és ellenőrizheti a SQL_ACCESSIBLE_PROCEDURES információértéket. Ellenkező esetben az alkalmazásnak képesnek kell lennie olyan helyzetet kezelni, amikor a felhasználó olyan eljárást választ, amelyet nem tud végrehajtani. Arról, hogyan használhatók ezekről az információkról, lásd : Eljárások.
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 SQLProcedures az eredményeket szabványos eredményhalmazként adja vissza, PROCEDURE_CAT, PROCEDURE_SCHEMA és PROCEDURE_NAME sorrendben.
Note
Az SQLProcedures nem feltétlenül adja vissza az összes eljárást. Az alkalmazások bármilyen érvényes eljárást használhatnak, függetlenül attól, hogy az SQLProcedures visszaadja-e azt.
A következő oszlopokat átnevezték az ODBC 3*.x* alapján. 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 |
|---|---|
| Eljárás minősítő | Eljáráskategória |
| PROCEDURE _OWNER | PROCEDURE _SCHEM |
A PROCEDURE_CAT, PROCEDURE_SCHEM és PROCEDURE_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_PROCEDURE_NAME_LEN opciókkal.
Az alábbi táblázat az eredményhalmaz oszlopait sorolja fel. További oszlopokat a 8. oszlop (PROCEDURE_TYPE) után 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 |
|---|---|---|---|
| PROCEDURE_CAT (ODBC 2.0) | 1 | Varchar | Eljáráskatalógus azonosító; NULL, ha nem vonatkozik az adatforrásra. Ha egy illezser egyes eljárásokhoz 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 az eljárásokra, amelyeknek nincs katalógus. |
| PROCEDURE_SCHEM (ODBC 2.0) | 2 | Varchar | Eljárásséma azonosító; NULL, ha nem vonatkozik az adatforrásra. Ha egy illesztőprogram támogatja a sémákat bizonyos eljárásokhoz, míg másokhoz 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 az eljárásokra, amelyeknek nincs sémája. |
| PROCEDURE_NAME (ODBC 2.0) | 3 | Varchar nem NULL | Eljárásazonosító. |
| NUM_INPUT_PARAMS (ODBC 2.0) | 4 | N/A | Jövőbeli használatra fenntartva. Az alkalmazásoknak nem szabad az eredményoszlopokban visszaadott adatokra támaszkodniuk. |
| NUM_OUTPUT_PARAMS (ODBC 2.0) | 5 | N/A | Jövőbeli használatra fenntartva. Az alkalmazásoknak nem szabad az eredményoszlopokban visszaadott adatokra támaszkodniuk. |
| NUM_RESULT_SETS (ODBC 2.0) | 6 | N/A | Jövőbeli használatra fenntartva. Az alkalmazásoknak nem szabad az eredményoszlopokban visszaadott adatokra támaszkodniuk. |
| MEGJEGYZÉSEK (ODBC 2.0) | 7 | Varchar | Az eljárás leírása. |
| PROCEDURE_TYPE (ODBC 2.0) | 8 | Smallint | Definiálja az eljárás típusát: SQL_PT_UNKNOWN: Nem lehet meghatározni, hogy az eljárás értéket ad-e vissza. SQL_PT_PROCEDURE: A visszaküldött tárgy egy eljárás; vagyis nincs hozamértéke. SQL_PT_FUNCTION: A visszaküldött objektum egy függvény; vagyis van hozamértéke. |
A SchemaName és a ProcName érvek 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.
Kódpélda
Lásd a beavatkozási hívásokat.
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 |
| 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 |
| Információ visszaküldése egy driverről vagy adatforrásról | SQLGetInfo Function |
| A paraméterek és az eredményhalmaz oszlopainak visszaadása egy eljárásban | SQLProcedureColumns Function |
| Szintaxis tárolt eljárások megidézéséhez | Végrehajtási utasítások |