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
Bevezetett verzió: ODBC 1.0 szabványmegfelelőség: ISO 92
Summary
Az SQLDataSources információt ad vissza egy adatforrásról. Ezt a funkciót csak a Driver Manager valósítja meg.
Syntax
SQLRETURN SQLDataSources(
SQLHENV EnvironmentHandle,
SQLUSMALLINT Direction,
SQLCHAR * ServerName,
SQLSMALLINT BufferLength1,
SQLSMALLINT * NameLength1Ptr,
SQLCHAR * Description,
SQLSMALLINT BufferLength2,
SQLSMALLINT * NameLength2Ptr);
Arguments
EnvironmentHandle
[Bemenet] Környezet kezelése.
Irány
[Bemenet] Meghatározza, hogy a Driver Manager melyik adatforrásról ad vissza információt. A következő lehet:
SQL_FETCH_NEXT (a következő adatforrás név lekérésére a listában), SQL_FETCH_FIRST (a lista elejéről való lekérés), SQL_FETCH_FIRST_USER (az első felhasználó DSN-jének lekérésére), vagy SQL_FETCH_FIRST_SYSTEM (az első rendszer DSN-ének lekérésére).
Amikor az Direction SQL_FETCH_FIRST-re van állítva, a következő SQLDataSourceshívások az irány beállítással SQL_FETCH_NEXT mind a felhasználó, mind a rendszer DSN-jeit adják vissza. Amikor az Direction SQL_FETCH_FIRST_USER-re van állítva, minden további SQLDataSources hívás, amelynek az Direction beállítása SQL_FETCH_NEXT, csak felhasználói DSN-eket adnak vissza. Amikor az Direction SQL_FETCH_FIRST_SYSTEM-re van állítva, minden további SQLDataSources hívás, amelynek az Direction SQL_FETCH_NEXT állítva, csak a rendszer DSN-jeit eredményezi.
Kiszolgálónév
[Kimenet] Mutató egy pufferre, amelyben vissza lehet adni az adatforrás nevét.
Ha a ServerName null, a NameLength1Ptr továbbra is visszaadja a ServerName által mutatott pufferben elérhető összes karakterszámot (kivéve a null-terminációs karaktert a karakteradatokhoz).
BufferLength1
[Bemenet] A *ServerName puffer hossza karakterekben; ennek nem kell hosszabbnak lennie, mint SQL_MAX_DSN_LENGTH plusz a null-terminálás karakter.
NameLength1Ptr
[Kimenet] Mutató egy pufferre, amelyben vissza lehet adni a *ServerName-ben elérhető összes karakter számát (a null-terminációs karakter kivételével). Ha a visszaadható karakterek száma nagyobb, mint a BufferLength1, akkor a *ServerName adatforrás neve a null-terminációs karakter hosszát mínusz BufferLength1-re rövidítik.
Leírás
[Kimenet] Mutató egy pufferre, amelyben vissza lehet adni az adatforráshoz tartozó illesztőprogram leírását. Például dBASE vagy SQL Server.
Ha a leírás NULL, a NameLength2Ptr továbbra is visszaadja a Leírás által mutatott pufferben elérhető összes karakterszámot (kivéve a null-terminációs karaktert a karakteradatokhoz).
BufferLength2
[Bemenet] Hossz a *Leírás puffer karaktereiben.
NameLength2Ptr
[Kimenet] Mutató egy pufferre, amelyben vissza lehet adni a *Description (null-terminációs karakter kivételével) összes karakterszámot, amely vissza lehet adni. Ha a visszatérhető karakterek száma nagyobb, mint a BufferLength2, a *Description meghajtó leírása lerövidítve van BufferLength2-re mínusz egy null-terminációs karakter hossza.
Returns
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR vagy SQL_INVALID_HANDLE.
Diagnostics
Amikor az SQLDataSources SQL_ERROR vagy SQL_SUCCESS_WITH_INFO értéket ad, egy hozzárendelt SQLSTATE érték elérhető SQLGetDiagRec hívásával, amely egy SQL_HANDLE_ENV HandleType és a EnvironmentHandleHandle nevű HandleType segítségével szól. Az alábbi táblázat felsorolja azokat az SQLSTATE értékeket, amelyeket az SQLDataSources általában visszaad, és mindegyiket elmagyarázza ezen függvény kontextusában; 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 | Hiba | Description |
|---|---|---|
| 01000 | Általános figyelmeztetés | (DM) A vezetővezetőnek specifikus tájékoztató üzenet. (A függvény SQL_SUCCESS_WITH_INFO ad vissza.) |
| 01004 | Sztringadatok, jobb csonkolt | (DM) A *ServerName puffer nem volt elég nagy ahhoz, hogy a teljes adatforrás nevét visszaadja. Ezért a nevet lerövidítették. Az egész adatforrás nevének hosszát a *NameLength1Ptr formátumban kapja vissza. (A függvény SQL_SUCCESS_WITH_INFO ad vissza.) (DM) A puffer *Leírás nem volt elég nagy ahhoz, hogy a teljes sofőr leírást adja vissza. Ezért a leírást lerövidítették. A csonkítatlan adatforrás leírásának hosszát a *NameLength2Ptr fájlban adják vissza. (A függvény SQL_SUCCESS_WITH_INFO ad vissza.) |
| HY000 | Általános hiba | (DM) Olyan hiba történt, amelyre nem volt konkrét SQLSTATE, és amelyre nem volt implementáció-specifikus SQLSTATE. Az SQLGetDiagRec által a *MessageText pufferben visszaadott hibaüzenet leírja a hibát és annak okát. |
| HY001 | Memóriafoglalási hiba | (DM) A Driver Manager nem tudott olyan memóriát osztani le, amely szükséges a funkció végrehajtásához vagy befejezéséhez. |
| HY010 | Függvényütemezési hiba | (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. |
| 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) A BufferLength1 argumentum értéke kevesebb volt, mint 0. (DM) A BufferLength2 argumentumhoz megadott érték kevesebb volt, mint 0. |
| HY103 | Érvénytelen lekérdezési kód | (DM) Az Irány érveléshez megadott érték nem volt egyenlő SQL_FETCH_FIRST, SQL_FETCH_FIRST_USER, SQL_FETCH_FIRST_SYSTEM vagy SQL_FETCH_NEXT. |
| 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. |
Comments
Mivel az SQLDataSources a Driver Managerben van megvalósítva, minden illesztőprogramot támogatnak, függetlenül attól, hogy az adott illesztőprogram szabványainak megfelel-e.
Egy alkalmazás többször is hívhatja az SQLDataSources-t , hogy lekérje az összes adatforrás nevét. A Driver Manager ezeket az információkat a rendszerinformációból nyeri le. Ha nincs több adatforrás név, a Driver Manager SQL_NO_DATA visszaad. Ha az SQLDataSources-t azonnal SQL_NO_DATA visszaküldése után hívják SQL_FETCH_NEXT-vel, akkor az első adatforrás nevet adja vissza. Arról, hogyan használja egy alkalmazás az SQLDataSources által visszaadott információkat, lásd: Adatforrás vagy driver kiválasztása.
Ha SQL_FETCH_NEXT az SQLDataSources-nak az első híváskor továbbítják, az az első adatforrás nevet adja vissza.
A meghajtó határozza meg, hogyan kapcsolódnak az adatforrások nevei a tényleges adatforrásokhoz.
Kapcsolódó funkciók
| Információ erről: | Nézze |
|---|---|
| Az adatforráshoz való csatlakozáshoz szükséges értékek felfedezése és felsorolása | SQLBrowseConnect függvény |
| Csatlakozás adatforráshoz | SQLConnect-függvény |
| Adatforráshoz való csatlakozás egy kapcsolati karakterlánc vagy párbeszédablak segítségével | SQLDriverConnect függvény |
| Visszatérő versenyző leírásai és attribútumok | SQLDrivers Function |