Alkalmazásfejlesztés: Hívásszintű felület (CLI)

| | |

Trusted_Connection CLI/ODBC konfigurációs |kulcsszó

|

|
|
Kulcsszó leírása:
|
A jelenlegi hitelesített felhasználó számára kapcsolatok |létrehozásának engedélyezése. |
|
Szintaxis:
|
Trusted_Connection=Yes | |
Megjegyzés:
|
Ez a kulcsszó hatástalan, ha a |db2cli.ini fájlban van megadva. Ehelyett a |SQLDriverConnect() csatlakozási karaktersorozatban kell megadni.
|
|
Alapértelmezett beállítás:
|
A DB2 CLI a csatlakozási karaktersorozat SQLDriverConnect() felé megadott |felhasználói azonosítót és jelszót használja, nem az aktuális hitelesített |felhasználót. |
|
Használati megjegyzések:
|
|

Az adatbázishoz csatlakozó DB2 CLI alkalmazások általában a |SQLDriverConnect() funkciót használják. A funkció egyik bemeneti paramétere a |DriverCompletion érték, ami meghatározza, hogy mikor nyíljon meg |egy ablak. A DriverCompletion értékei az alábbiak:

| | |
Megjegyzés:
|
A DriverCompletion további részletei a |SQLDriverConnect() dokumentációjában találhatóak.
|

Egyes alkalmazások - mint például a Kerberos környezet -, megkövetelhetik, |hogy a DB2 UDB szerverhez csatlakozó felhasználónak ne kelljen |felhasználói azonosító vagy jelszót megadnia. |Ha az alkalmazás a SQL_DRIVER_NO_PROMPT beállítással próbál meg |csatlakozni a SQLDriverConnect() híváskor, akkor a csatlakozási próbálkozás |felhasználói hitelesítés nélkül történik. Ez a kulcsszó akkor nem |szükséges.

|

Ha harmadik féltől származó alkalmazás is érintett, és |az alkalmazás felszólítási szintje nem SQL_DRIVER_NO_PROMPT, akkor a DB2 CLI |új ablakot nyit a hiányzó információk megszerzéséhez. |Ha a Trusted_Connection Yes értékre van állítva a SQLDriverConnect() bemeneti |karaktersorozatban ("Trusted_Connection=Yes"), akkor a DB2 CLI |figyelmen kívül hagyja a csatlakozási karaktersorozatban megadott |felhasználói azonosítókat vagy jelszavakat (beleértve az üres karaktereket |is), valamint a csatlakozási funkció felszólítási szintjét is. A DB2 CLI az |aktuális hitelesített felhasználóval kísérli meg az adatbázishoz |csatlakozást. |Ha a csatlakozási kísérlet meghiúsul, akkor a felhasználónak felhasználói |azonosítót és jelszót kell megadnia.

|

Ez a kulcsszó csak a |SQLDriverConnect() csatlakozási karaktersorozatban használt, módosítása a |db2cli.ini fájlban hatástalan.

|
|

Diagnosztikai tábla frissítése a SQLDescribeParam függvénynél (CLI)

Az SQLDescribeParam() függvény egy előkészített SQL utasításhoz tartozó paraméterjelző leírását adja vissza.

A diagnosztikai tábla az SQLSTATE HYC00 állapotkóddal frissült.

Diagnosztika

24. táblázat SQLDescribeParam SQLSTATE-ek
SQLSTATE Leírás Magyarázat
HYC00 Illesztőprogram nem elérhető A sémafüggvény tárolt eljárásai nem elérhetők a kiszolgálón. Telepítse a sémafüggvény tárolt eljárásait a kiszolgálóra és biztosítsa, hogy elérhetők legyenek.

A hívásszintű felület aszinkron végrehajtása

A DB2 hívásszintű felület (DB2 CLI) aszinkron módon futtathatja függvények egy részhalmazát. A DB2 CLI illesztőprogram a függvény hívása után, de a függvény végrehajtása előtt adja vissza a vezérlést az alkalmazásnak. A függvény minden hívásakor SQL_STILL_EXECUTING értéket ad vissza amíg fut, ezután pedig egy különböző értéket (például SQL_SUCCESS).

Az aszinkron végrehajtás csak egyszálú operációs rendszereken előnyös. Többszálas operációs rendszereken futó alkalmazásoknak a függvényeket külön szálon kell végrehajtaniuk. Az aszinkron végrehajtás azoknál a függvényeknél lehetséges, amelyek normális esetben egy kérést küldenek a kiszolgálóra, majd várnak a válaszra. A várakozás helyett az aszinkron módon végrehajtott függvény visszaadja a vezérlést az alkalmazás számára. Az alkalmazás ezután végrehajthat más feladatokat, vagy visszaadhatja a vezérlést az operációs rendszernek, és egy megszakítást használva ismételten lekérdezheti a függvényt, amíg az az SQL_STILL_EXECUTING értéktől különböző értéket nem ad vissza.

A CLI aszinkron végrehajtásának támogatását tartalmazza a DB2 Universal Database (UDB), az 1-es javítócsomaggal rendelkező 8.2 verziótól kezdődően (egyenértékű a 8-as javítócsomaggal rendelkező 8.1-es verzióval). A szolgáltatás dokumentációját a DB2 UDB 7-es verziójának információs központjában olvashatja: http://publib.boulder.ibm.com/infocenter/db2v7luw/index.jsp. A 7-es verzió minden információja az 1-es javítócsomaggal rendelkező 8.2-es verzióra (egyenértékű a 8-as javítócsomaggal rendelkező 8.1-es verzióval) és újabb verzióra érvényes. A DB2 8-as verzió információs központja nem tartalmazza ezen szolgáltatás dokumentációját.

SQL_ATTR_PING_DB összeköttetési attribútum

SQL_ATTR_PING_DB (DB2 CLI v8.2)

Az SQL_ATTR_PING_DB egy 32 bites egész szám, amely az SQLGetConnectAttr() függvénnyel használva visszaadja a DB2 UDB ügyfél és a DB2 UDB kiszolgáló közötti meglévő kapcsolat hálózati válaszidejét. A válaszidó mikroszekundumban van megadva.

Ha egy kapcsolat már korábban létrejött, és azt az adatbázis bontotta, 0 értéket jelez a függvény. Ha a kapcsolatot az alkalmazás bezárta, 08003 értékű SQLSTATE állapotot jelez a függvény. Ezt az összeköttetési attribútumot az SQLGetConnectAttr() függvény is visszaadhatja, de az SQLSetConnectAttr() nem állíthatja be. Az attribútum beállítására tett kísérlet HYC00 értékű SQLSTATE állapotot ad vissza (illesztőprogram nem elérhető).

Az SQLBindParameter függvény (CLI)

Az SQLBindParameter függvény dokumentációjában a bemeneti paraméter szakaszban megadott leírás helytelen. A helyes leírás a következő:

Bemeneti paraméter
A 0 értékű ColumnSize azt jelenti, hogy a DB2 CLI a megadott SQL típus maximális hosszát használja az oszlop vagy tárolt eljárás paraméterének méreteként. A DB2 CLI ezt a méretet használva hajt végre minden szükséges átalakítást.

SQLMoreResults függvény (CLI)

Az SQLMoreResults függvény dokumentációjában az SQL_ATTR_ROW_ARRAY_SIZE attribútum hibásan szerepel. A helyes attribútum SQL_ATTR_PARAMSET_SIZE. A Használat szakasznak a következőnek kellene lennie:

Ez a függvény több eredményhalmazt ad vissza sorozatban a következők végrehajtásakor:

További környezeti attribútumok

A következő CLI összeköttetési attribútumokat a rendszer CLI környezeti attribútumként használva is támogatja:

Az ezen attribútumokra vonatkozó információk elolvashatók a DB2 Információs központban, a CLI összeköttetési attribútumok dokumentációjában, illetve a CLI útmutató és kézikönyv, 2. kötet kiadványban.

Dinamikusan görgethető kurzorokkal kapcsolatos követelmények

Dinamikusan görgethető kurzor eredménykészletében található sorokon frissítési vagy törlési művelet csak akkor hajtható végre sikeresen, ha az UPDATE, illetve a DELETE utasítás tartalmazza legalább egy, az alaptáblában található egyedi kulcs minden oszlopát. Ez lehet az elsődleges kulcs, de bármilyen más egyedi kulcs is.

RetCatalogAsCurrServer CLI/ODBC konfigurációs kulcsszó

Kulcsszó leírása:
A katalógusfüggvények null érték helyett a CURRENT SERVER értéket adják vissza katalógus oszlopok esetén.
db2cli.ini kulcsszó szintaktika:
RetCatalogAsCurrServer= 0 | 1
Alapértelmezett beállítás:
Ha a cél DBMS null értéket ad vissza a katalógus oszlopokhoz, a CURRENT SERVER érték behelyettesítésére nem kerül sor.
Használati megjegyzések:
Ha a cél DBMS katalógusfüggvényei null értéket adnak vissza a katalógus oszlopokhoz, a RetCatalogAsCurrServer 1 értékre állításával a DBMS ehelyett a CURRENT SERVER értéket adja vissza.

Például tegyük fel, hogy az SQLTables() katalógusfüggvény egy eredményhalmazt ad vissza, ahol a TABLE_CAT oszlop értékei null értékek. A RetCatalogAsCurrServer paraméter 1 értékre állításával a DBMS a TABLE_CAT oszlopban a CURRENT SERVER értéket adja vissza.

Megjegyzés:
Ezt a kulcsszót támogatja a DB2 UDB for Linux, UNIX(R) and Windows(R) 3-as javítócsomaggal rendelkező 8.2 verziója (egyenértékű a 10-es javítócsomaggal rendelkező 8.1-es verzióval) és újabb verziói.

ReceiveTimeout CLI/ODBC konfigurációs kulcsszó

Kulcsszó leírása:
Azt az időtartamot adja meg másodpercben, melyet a rendszer a kiszolgálótól érkező válaszra vár valamely létrehozott kapcsolódás esetében, mielőtt felhagy a próbálkozással és kommunikációs időtúllépési hibát jelez.
db2cli.ini kulcsszó szintaktika:
ReceiveTimeout = 0 | 1 | 2 | ... | 32767
Alapértelmezett beállítás:
Az ügyfél korlátlan ideig várakozik a létrehozott összeköttetésen a kiszolgálótól érkező válaszra.
Egyenértékű összeköttetési attribútum:
SQL_ATTR_RECEIVE_TIMEOUT
Használati megjegyzések:
A 0 alapértelmezett érték az jelzi, hogy az ügyfél korlátlan ideig vár a válaszra. A fogadási időtúllépés nincs hatással a kapcsolódás létrehozására továbbá kizárólag TCP/IP esetében támogatott (minden egyéb protokoll esetében a rendszer figyelmen kívül hagyja).

SQL_ATTR_RECEIVE_TIMEOUT csatlakozási attribútum

SQL_ATTR_RECEIVE_TIMEOUT (DB2 CLI v8)
32 bites egész érték, mely azt az időtartamot adja meg másodpercben, melyet a rendszer a kiszolgálótól érkező válaszra vár valamely létrehozott kapcsolódás esetében, mielőtt felhagy a próbálkozással és kommunikációs időtúllépési hibát jelez. A 0 alapértelmezett érték az jelzi, hogy az ügyfél korlátlan ideig vár a válaszra. A fogadási időtúllépés nincs hatással a kapcsolódás létrehozására továbbá kizárólag TCP/IP esetében támogatott (minden egyéb protokoll esetében a rendszer figyelmen kívül hagyja). A támogatott értékek a 0 - 32767 tartomány egész számai.

Reopt CLI/ODBC konfigurációs kulcsszó

Kulcsszó leírása:
Speciális regiszterekkel vagy paraméter jelzőkkel rendelkező SQL utasítások esetében engedélyezi a lekérdezések optimalizálását, illetve újraoptimalizálását.
db2cli.ini kulcsszó szintaktika:
Reopt = 2 | 3 | 4
Alapértelmezett beállítás:
A lekérdezés végrehajtása alatt nincs lekérdezés-optimalizálás. A rendszer a fordító által választott alapértelmezett becsléseket használja a speciális regiszterek, illetve paraméter jelzők esetében.
Egyenértékű utasítás és összeköttetési attribútum:
SQL_ATTR_REOPT
Használati megjegyzések:
Az optimalizálás a speciális regiszterek, illetve paraméter jelzők lekérdezésének végrehajtásakor elérhető értékek használata mellett történik, és nem a fordító által választott alapértelmezett becslések alapján. A kulcsszó érvényes értékei a következők lehetnek: A "NULLIDR1" és a "NULLIDRA" foglalt csomagkészletnevek, így használatuk értelemszerűen a REOPT ONCE és a REOPT ALWAYS használatát is jelenti. Ezen csomagkészleteket külön létre kell hozni a következő parancsok segítségével:
db2 bind db2clipk.bnd collection NULLIDR1
db2 bind db2clipk.bnd collection NULLIDRA
Ha a Reopt és a CurrentPackageSet kulcsszó egyaránt meg van adva, a rendszer elsősorban a CurrentPackageSet értékét veszi figyelembe.

SQL_ATTR_REOPT utasítási és összeköttetési attribútum

SQL_ATTR_REOPT (DB2 CLI v8)
32 bites egész érték, mely lehetővé teszi a speciális regisztereket, illetve paraméter jelzőket tartalmazó SQL utasítások lekérdezésének optimalizálását. Az optimalizálás a speciális regiszterek, illetve paraméter jelzők lekérdezésének végrehajtásakor elérhető értékek használata mellett történik, és nem a fordító által választott alapértelmezett becslések alapján. Az attribútum érvényes értékei a következők lehetnek: A "NULLIDR1" és a "NULLIDRA" foglalt csomagkészletnevek, így használatuk értelemszerűen a REOPT ONCE és a REOPT ALWAYS használatát is jelenti. Ezen csomagkészleteket külön létre kell hozni a következő parancsok segítségével:
db2 bind db2clipk.bnd collection NULLIDR1
db2 bind db2clipk.bnd collection NULLIDRA
Az SQL_ATTR_REOPT és az SQL_ATTR_CURRENT_PACKAGE_SET kölcsönösen kizárják egymást, így az egyik megadása esetén a másik használata nem lehetséges.

CurrentPackageSet CLI/ODBC konfigurációs kulcsszó

Kulcsszó leírása:
Minden kapcsolódást követően kiadja a SET CURRENT PACKAGESET utasítást.
db2cli.ini kulcsszó szintaktika:
CurrentPackageSet = sémanév
Alapértelmezett beállítás:
A tagmondat nincs hozzáfűzve.
Egyenértékű összeköttetési attribútum:
SQL_ATTR_CURRENT_PACKAGE_SET
Használati megjegyzések:

Ez a beállítás az adatbázishoz történő minden kapcsolódást követően kiadja a SET CURRENT PACKAGESET SQL utasítást a CurrentPackageSet értékkel. Alapértelmezés szerint ez a tagmondat nem kerül hozzáfűzésre.

A SET CURRENT PACKAGESET SQL utasítás megadja a sémanevet (gyűjteményazonosítót), mely a későbbi SQL utasításokhoz használt csomag kiválasztására szolgál.

A CLI/ODBC alkalmazások dinamikus SQL utasításokat adnak ki. Ezzel a beállítással az ezen utasítások futtatásához használt jogosultságok szabályozhatók:

Ezzel a CLI/ODBC alkalmazásokban használt SQL utasítások a megadott séma alatt futnak, és az ott megadott jogosultságokat használják.

A következő csomagkészletnevek foglaltak: "NULLID ", "NULLIDR1", "NULLIDRA".

Ha a Reopt és a CurrentPackageSet kulcsszó egyaránt meg van adva, a rendszer elsősorban a CurrentPackageSet értékét veszi figyelembe.

SQL_ATTR_CURRENT_PACKAGE_SET összeköttetési attribútum

SQL_ATTR_CURRENT_PACKAGE_SET (DB2 CLI v5)
Nullkarakterre végződő karakterlánc, mely megadja a sémanevet (gyűjteményazonosítót), mely a későbbi SQL utasításokhoz használt csomag kiválasztására szolgál. Ezen attribútum megadása maga után vonja a SET CURRENT PACKAGESET SQL utasítás kiadását. Ha az attribútum megadása összeköttetés létrejötte előtt történik, a rendszer a kapcsolódáskor kiadja a SET CURRENT PACKAGESET SQL utasítást.

A CLI/ODBC alkalmazások dinamikus SQL utasításokat adnak ki. Ezzel az összeköttetési beállítással az ezen utasítások futtatásához használt jogosultságok szabályozhatók:

Ezzel a CLI/ODBC alkalmazásokban használt SQL utasítások a megadott séma alatt futnak, és az ott megadott jogosultságokat használják.

A CLI/ODBC CURRENTPACKAGESET konfigurációs kulcsszavának beállítása a sémanév megadásának másik módja.

A következő csomagkészletnevek foglaltak: "NULLID ", "NULLIDR1", "NULLIDRA".

Az SQL_ATTR_REOPT és az SQL_ATTR_CURRENT_PACKAGE_SET kölcsönösen kizárják egymást, így az egyik megadása esetén a másik használata nem lehetséges.

MapBigintCDefault CLI/ODBC konfigurációs kulcsszó

Kulcsszó leírása:
Megadja a BIGINT oszlopok és paraméterjelzők alapértelmezett C típusát.
db2cli.ini kulcsszó szintaktika:
MapBigintCDefault = 0 | 1 | 2
Alapértelmezett beállítás:
A BIGINT adatok alapértelmezett C reprezentációja: SQL_C_BIGINT.
Használati megjegyzések:
 

A MapBigintCDefault vezérli a C típust, amely akkor kerül felhasználásra, ha SQL_C_DEFAULT van megadva a BIGINT oszlopoknál és paraméterjelzőknél. Ezt a kulcsszót elsősorban Microsoft alkalmazásokkal (pl. Microsoft Access) kell használni, melyek nem tudják kezelni a 8 bájtos egész számokat. A MapBigintCDefault beállítása:

Ez a kulcsszó befolyásolja a CLI függvények működését, melyekben az SQL_C_DEFAULT C típusként lehet megadva, pl. SQLBindParameter(), SQLBindCol() és SQLGetData().

DescribeOutputLevel CLI/ODBC konfigurációs kulcsszó

Kulcsszó leírása:
Beállítja a kimeneti oszlop leíró információinak szintjét, amelyet a CLI vezérlő kér előkészületi vagy leírási kérelmek során.
db2cli.ini kulcsszó szintaktika:
DescribeOutputLevel = 0 | 1 | 2 | 3
Alapértelmezett beállítás:
A(z) 25. táblázat 2-es szintjén felsorolt leíró információk kérése.
Használati megjegyzések:
 

Ez a kulcsszó szabályozza, hogy a CLI vezérlő mennyi információt kér előkészületi vagy leírási kérelem során. Ha a kiszolgáló egy leírási kérelmet kap, akkor alapértelmezés szerint a(z) 25. táblázat 2-es szintjén lévő információkat adja vissza az eredményhalmaz oszlopainál. Előfordulhat azonban, hogy egy alkalmazásnak ennél kevesebb vagy több információra van szüksége.

Ekkor a DescribeOutputLevel kulcsszót olyan szintre kell állítani, amely megfelel az ügyfélalkalmazás igényeinek; így javul a teljesítmény, mert a kiszolgáló és az ügyfél között pontosan annyi információ kerül átadásra, amennyire az alkalmazásnak szüksége van, tehát nincs fölösleges adatátvitel. Ha a DescribeOutputLevel beállítása túl alacsony, akkor az korlátozhatja az alkalmazás működését (az alkalmazás igényeitől függően). A leírási információkat szolgáltató CLI függvények nem lesznek sikertelenek, de a küldött információ elégtelennek bizonyulhat.

A DescribeOutputLevel támogatott beállításai:

Az alábbi táblázat felsorolja a leíró információt alkotó mezőket, melyeket a kiszolgáló küld, ha előkészületi vagy leírási kérelmet kap. Ezek a mezők szintek szerint vannak csoportosítva, és a DescribeOutputLevel CLI/ODBC konfigurációs kulcsszó szabályozza, hogy mely szintű leíró információkat kérelmezi a CLI vezérlő.

Megjegyzés:
Nem minden DB2 kiszolgáló támogatja a leíró információk összes szintjét. A következő DB2 kiszolgálók támogatják a leíró információk összes szintjét: DB2 Universal Database (UDB) for Linux , UNIX, továbbá 8-as verziójú vagy újabb Windows, 8-as verziójú vagy újabb DB2 UDB for z/OS, valamint 5-ös verziójú, 3. kiadású vagy újabb DB2 UDB for iSeries. Minden egyéb DB2 kiszolgáló a DescribeOutputLevel esetében csak a 2 vagy a 0 beállítást támogatja.
25. táblázat A leíró információk szintjei
1-es szint 2-es szint 3-as szint
SQL_DESC_COUNT
SQL_COLUMN_COUNT
SQL_DESC_TYPE
SQL_DESC_CONCISE_TYPE
SQL_COLUMN_LENGTH
SQL_DESC_OCTET_LENGTH
SQL_DESC_LENGTH
SQL_DESC_PRECISION
SQL_COLUMN_PRECISION
SQL_DESC_SCALE
SQL_COLUMN_SCALE
SQL_DESC_DISPLAY_SIZE
SQL_DESC_NULLABLE
SQL_COLUMN_NULLABLE
SQL_DESC_UNSIGNED
SQL_DESC_SEARCHABLE
SQL_DESC_LITERAL_SUFFIX
SQL_DESC_LITERAL_PREFIX
SQL_DESC_CASE_SENSITIVE
SQL_DESC_FIXED_PREC_SCALE
Az 1-es szint összes mezője, továbbá:
SQL_DESC_NAME
SQL_DESC_LABEL
SQL_COLUMN_NAME
SQL_DESC_UNNAMED
SQL_DESC_TYPE_NAME
SQL_DESC_DISTINCT_TYPE
SQL_DESC_REFERENCE_TYPE
SQL_DESC_STRUCTURED_TYPE
SQL_DESC_USER_TYPE
SQL_DESC_LOCAL_TYPE_NAME
SQL_DESC_USER_DEFINED_
         TYPE_CODE
Az 1-es és 2-es szintek összes mezője, továbbá: SQL_DESC_BASE_COLUMN_NAME
SQL_DESC_UPDATABLE
SQL_DESC_AUTO_UNIQUE_VALUE
SQL_DESC_SCHEMA_NAME
SQL_DESC_CATALOG_NAME
SQL_DESC_TABLE_NAME
SQL_DESC_BASE_TABLE_NAME
[ Oldal eleje |Előző oldal | Következő oldal | Tartalom ]