Příručka Application development: Call Level Interface (CLI)

| | |

Konfigurační klíčové slovo Trusted_Connection rozhraní CLI/ODBC

|

|
|
Popis klíčového slova:
|
Povolení navázat připojení s použitím aktuálního ověřeného uživatelského účtu. |
|
Syntaxe:
|
Trusted_Connection=Yes | |
Poznámka:
|
Toto klíčové slovo nemá žádný vliv, pokud je zadáno v souboru db2cli.ini. Namísto toho je třeba je zadat v připojovacím řetězci funkce SQLDriverConnect().
|
|
Výchozí nastavení:
|
Rozhraní DB2 CLI použije údaje jména a hesla uživatele zadané v připojovacím řetězci funkce SQLDriverConnect(), a nikoli údaje aktuálního ověřeného uživatelského účtu. |
|
Poznámky k použití:
|
|

Aplikace rozhraní DB2 CLI se obvykle připojují k databázi s použitím funkce SQLDriverConnect(). Jedním ze vstupních argumentů pro tuto funkci je hodnota DriverCompletion, která určuje, kdy má být otevřeno určité okno. Argument DriverCompletion může mít následující hodnoty:

| | |
Poznámka:
|
Další podrobnosti o argumentu DriverCompletion lze najít v dokumentaci k funkci SQLDriverConnect().
|

Některé aplikace (například aplikace v prostředí Kerberos) mohou vyžadovat možnost připojení uživatele k serveru DB2 UDB bez zadání jména a hesla uživatele. |Pokud daná aplikace používá při volání funkce SQLDriverConnect() volbu SQL_DRIVER_NO_PROMPT, |bude proveden pokus o připojení bez ověření uživatele. Toto klíčové slovo poté není vyžadováno.

|

Pokud se operace účastní aplikace třetí strany a tato aplikace používá jinou úroveň výzvy než SQL_DRIVER_NO_PROMPT, otevře rozhraní DB2 CLI okno s výzvou k zadání chybějících informací. |Pokud zadáte pro klíčové slovo Trusted_Connection hodnotu Yes, způsobí jeho zadání do vstupního připojovacího řetězce pro funkci SQLDriverConnect() ("Trusted_Connection=Yes") to, že rozhraní DB2 CLI bude ignorovat všechny řetězce se jménem a heslem uživatele (včetně prázdných řetězců) z připojovacího řetězce a bude ignorovat také úroveň výzvy funkce připojení. Rozhraní DB2 CLI provede pokus o navázání připojení k databázi s použitím aktuálního ověřeného uživatelského účtu. |Pokud je pokus o připojení neúspěšný, bude uživatel vyzván k zadání svého jména a hesla.

|

Toto klíčové slovo má smysl použít pouze v připojovacím řetězci pro funkci SQLDriverConnect(); |jeho zadání v souboru db2cli.ini nemá žádný účinek.

|
|

Aktualizace tabulky diagnostiky pro funkci SQLDescribeParam (rozhraní CLI)

Funkce SQLDescribeParam() vrací popis značky parametru přidružené s připraveným příkazem SQL.

Tabulka diagnostiky byla aktualizována příkazem SQLSTATE HYC00.

Diagnostika

Tabulka 24. Stavy SQL funkce SQLDescribeParam
SQLSTATE Popis Vysvětlení
HYC00 Ovladač nemůže provést zadanou operaci. Uložené procedury funkce schématu nejsou na serveru přístupné. Nainstalujte uložené procedury funkce schématu na server a zajistěte, aby byly přístupné.

Asynchronní provádění rozhraní CLI

Rozhraní CLI (Call Level Interface) produktu DB2 může část funkcí spustit asynchronně. Po volání funkce (ale před dokončením provádění této funkce) vrátí ovladač rozhraní CLI produktu DB2 řízení aplikaci. Při každém volání vrátí funkce hodnotu SQL_STILL_EXECUTING, dokud není dokončeno její provádění, kdy vrátí odlišnou hodnotu (například SQL_SUCCESS).

Asynchronní provedení je prospěšné pouze u operačních systémů s jedním podprocesem. Aplikace, které jsou provozovány v operačních systémech s více podprocesy, by měly provádět funkce v samostatných podprocesech. Asynchronní provedení je možné u těch funkcí, které normálně odesílají požadavek na server a potom čekají na odpověď. Funkce prováděné asynchronně však nečekají, ale vrací řízení aplikaci. Aplikace pak může provádět jiné úlohy nebo vrátit řízení operačnímu systému, a pomocí přerušení opakovaně odesílat výzvy aplikaci, dokud není vrácen jiný návratový kód než SQL_STILL_EXECUTING.

Podpora pro asynchronní provedení rozhraní CLI je zahrnuta v produktu DB2 Universal Database (UDB) počínaje verzí 8.2 s opravou FixPak 1 (ekvivalentní verzi 8.1 s opravou FixPak 8). Dokumentaci této funkce naleznete v Informačním centru DB2 UDB verze 7 na adrese http://publib.boulder.ibm.com/infocenter/db2v7luw/index.jsp. Veškeré informace v dokumentaci pro verzi 7 platí také pro verzi 8.2 s opravou FixPak 1 (ekvivalentní verzi 8.1 s opravou FixPak 8) a novější. Informační centrum DB2 verze 8 neobsahuje žádnou dokumentaci této funkce.

Atribut připojení SQL_ATTR_PING_DB

SQL_ATTR_PING_DB (rozhraní CLI produktu DB2 verze 8.2)

Atribut SQL_ATTR_PING_DB je 32bitové celé číslo, které se ve spojení s funkcí SQLGetConnectAttr() používá k získání doby síťové odezvy stávajícího připojení mezi klientem a serverem DB2 UDB. Doba odezvy je oznamována v mikrosekundách.

Pokud bylo dříve navázáno spojení, které bylo zrušeno databází, je oznámena hodnota 0. Jestliže bylo spojení zavřeno aplikací, je oznámen stav SQL 08003. Tento atribut připojení může být vrácen funkcí SQLGetConnectAttr(), nemůže však být nastaven funkcí SQLSetConnectAttr(). Jakýkoli pokus o nastavení tohoto atributu vrátí hodnotu HYC00 stavu SQL (Ovladač nemůže provést zadanou operaci).

Funkce SQLBindParameter (rozhraní CLI)

V dokumentaci funkce SQLBindParameter je uveden nesprávný popis v oddíle Vstupní parametr. Správný popis je následující:

Vstupní parametr
Nulová hodnota Velikost sloupce znamená, že rozhraní CLI produktu DB2 použije maximální délku pro typ SQL poskytnutý jako velikost sloupce nebo parametr uložené procedury. Rozhraní CLI produktu DB2 provede pomocí této velikosti všechny nezbytné převody.

Funkce SQLMoreResults (rozhraní CLI)

V dokumentaci funkce SQLMoreResults je nesprávně odkazováno na atribut příkazu SQL_ATTR_ROW_ARRAY_SIZE. Správný atribut příkazu je SQL_ATTR_PARAMSET_SIZE. Oddíl Použití by správně měl vypadat takto:

Tato funkce vrací sekvenčním způsobem několik výsledných sad, a to při provedení následující operace:

Další atributy prostředí

Kromě atributů připojení CLI jsou jako atributy prostředí CLI podporovány následující atributy:

Informace o těchto atributech naleznete v dokumentaci k atributům připojení CLI v Informačním centru DB2 nebo v příručce CLI Guide and Reference Volume 2.

Požadavek pro dynamické posouvatelné kurzory

Aby bylo možné aktualizovat a odstraňovat řádky ve výsledné sadě dynamického posouvatelného kurzoru, musí příkaz UPDATE nebo DELETE zahrnovat všechny sloupce nejméně jednoho jedinečného klíče základní tabulky. Může jít o primární klíč nebo libovolný jiný jedinečný klíč.

Konfigurační klíčové slovo RetCatalogAsCurrServer rozhraní CLI/ODBC

Popis klíčového slova:
Funkce katalogu vracejí pro sloupce katalogu hodnotu AKTUÁLNÍ SERVER namísto hodnoty Null.
Syntaxe v souboru db2cli.ini:
RetCatalogAsCurrServer= 0 | 1
Výchozí nastavení:
Pokud cílová oblast DBMS vrací pro sloupce katalogu hodnotu Null, nebude hodnota AKTUÁLNÍ SERVER nahrazena.
Poznámky k použití:
Pokud funkce katalogu pro cílovou oblast DBMS vracejí pro sloupce katalogu hodnotu Null, nastavení RetCatalogAsCurrServer na hodnotu 1 způsobí, že oblast DBMS vrátí hodnotu AKTUÁLNÍ SERVER.

Předpokládejme například, že funkce katalogu SQLTables() vrátí výslednou sadu, ve které hodnoty ve sloupci TABLE_CAT nabývají hodnot Null. Nastavení RetCatalogAsCurrServer na hodnotu 1 způsobí, že oblast DBMS vrátí ve sloupci TABLE_CAT hodnotu AKTUÁLNÍ SERVER.

Poznámka:
Toto klíčové slovo podporuje produkt DB2 UDB for Linux, UNIX(R) and Windows(R) verze 8.2 s opravou FixPak 3 (ekvivalentní verzi 8.1 s opravou FixPak 10) a novější.

Konfigurační klíčové slovo ReceiveTimeout rozhraní CLI/ODBC

Popis klíčového slova:
Zadejte dobu čekání na odezvu serveru v sekundách u navázaného připojení, po jejímž uplynutí bude pokus ukončen a dojde k vygenerování chyby v důsledku vypršení časového limitu komunikace.
Syntaxe v souboru db2cli.ini:
ReceiveTimeout = 0 | 1 | 2 | ... | 32767
Výchozí nastavení:
Doba čekání klienta na odezvu serveru u navázaného připojení není omezena.
Odpovídající atribut připojení:
SQL_ATTR_RECEIVE_TIMEOUT
Poznámky k použití:
Výchozí hodnota 0 nastavuje časově neomezené čekání klienta na odezvu. Během navazování spojení nemá časový limit pro příjem žádný účinek; je podporován pouze u protokolu TCP/IP a u všech ostatních protokolů je ignorován.

Atribut připojení SQL_ATTR_RECEIVE_TIMEOUT

SQL_ATTR_RECEIVE_TIMEOUT (DB2 CLI v8)
32bitová celočíselná hodnota udávající v sekundách dobu čekání klienta na odezvu serveru u navázaného připojení, po jejímž uplynutí bude pokus ukončen a dojde k vygenerování chyby v důsledku vypršení časového limitu komunikace. Výchozí hodnota 0 nastavuje časově neomezené čekání klienta na odezvu. Během navazování spojení nemá časový limit pro příjem žádný účinek; je podporován pouze u protokolu TCP/IP a u všech ostatních protokolů je ignorován. Podporovány jsou celočíselné hodnoty od 0 do 32767.

Konfigurační klíčové slovo Reopt rozhraní CLI/ODBC

Popis klíčového slova:
Povoluje optimalizaci nebo opětovnou optimalizaci dotazů u příkazů SQL se speciálními registry nebo značkami parametrů.
Syntaxe v souboru db2cli.ini:
Reopt = 2 | 3 | 4
Výchozí nastavení:
Během provádění dotazů neprobíhá žádná optimalizace dotazu. Pro speciální registry a značky parametrů se používají výchozí odhady nastavené kompilátorem.
Odpovídající atribut příkazu a připojení:
SQL_ATTR_REOPT
Poznámky k použití:
Optimalizace probíhá s použitím hodnot dostupných pro speciální registry nebo značky parametrů v době zpracování dotazu namísto výchozích odhadů nastavených kompilátorem. Platné hodnoty tohoto klíčového slova: "NULLIDR1" a "NULLIDRA" jsou rezervovaná jména sad balíků a v případě jejich použití jsou použity také volby REOPT ONCE a REOPT ALWAYS. Sady balíků je nutné vytvořit explicitně následujícími příkazy:
db2 bind db2clipk.bnd collection NULLIDR1
db2 bind db2clipk.bnd collection NULLIDRA
Pokud jsou zadána klíčová slova Reopt i CurrentPackageSet, má přednost klíčové slovo CurrentPackageSet.

Atribut příkazu a připojení SQL_ATTR_REOPT

SQL_ATTR_REOPT (DB2 CLI v8)
32bitová celočíselná hodnota povolující optimalizaci dotazů pro příkazy SQL obsahující speciální registry a značky parametrů. Optimalizace probíhá s použitím hodnot dostupných pro speciální registry nebo značky parametrů v době zpracování dotazu namísto výchozích odhadů nastavených kompilátorem. Platné hodnoty tohoto atributu: "NULLIDR1" a "NULLIDRA" jsou rezervovaná jména sad balíků a v případě jejich použití jsou použity také volby REOPT ONCE a REOPT ALWAYS. Sady balíků je nutné vytvořit explicitně těmito příkazy:
db2 bind db2clipk.bnd collection NULLIDR1
db2 bind db2clipk.bnd collection NULLIDRA
Hodnoty SQL_ATTR_REOPT a SQL_ATTR_CURRENT_PACKAGE_SET se vzájemně vylučují, takže je-li nastavena jedna z nich, není povoleno použití druhé.

Konfigurační klíčové slovo CurrentPackageSet rozhraní CLI/ODBC

Popis klíčového slova:
Po každém připojení generuje příkaz SET CURRENT PACKAGESET.
Syntaxe v souboru db2cli.ini:
CurrentPackageSet = jméno_schématu
Výchozí nastavení:
Klauzule není připojena.
Odpovídající atribut připojení:
SQL_ATTR_CURRENT_PACKAGE_SET
Poznámky k použití:

Tato volba odesílá po každém připojení k databázi příkaz SQL SET CURRENT PACKAGESET s hodnotou CurrentPackageSet. Standardně se tato klauzule nepřipojuje.

Příkaz SET CURRENT PACKAGESET SQL nastavuje jméno schématu (identifikátor kolekce) používané k výběru balíku, který má být použit v následujících příkazech SQL.

Aplikace CLI/ODBC zadávají dynamické příkazy SQL. Pomocí této volby lze ovládat oprávnění používaná ke spuštění těchto příkazů:

Příkazy SQL z aplikací CLI/ODBC budou nyní pracovat pod zadaným schématem s použitím oprávnění definovaných v tomto schématu.

Následující jména sad balíků jsou vyhrazená: "NULLID", "NULLIDR1", "NULLIDRA".

Pokud jsou zadána klíčová slova Reopt i CurrentPackageSet, má přednost klíčové slovo CurrentPackageSet.

Atribut připojení SQL_ATTR_CURRENT_PACKAGE_SET

SQL_ATTR_CURRENT_PACKAGE_SET (DB2 CLI v5)
Znakový řetězec ukončený hodnotou Null, který udává jméno schématu (identifikátor kolekce) používané k výběru balíku pro další příkazy SQL. Při nastavení tohoto atributu je vygenerován příkaz SQL SET CURRENT PACKAGESET. Je-li tento atribut nastaven před připojením, příkaz SQL SET CURRENT PACKAGESET bude spuštěn při připojení.

Aplikace CLI/ODBC zadávají dynamické příkazy SQL. Pomocí tohoto atributu připojení lze ovládat oprávnění používaná ke spuštění těchto příkazů:

Příkazy SQL z aplikací CLI/ODBC budou nyní pracovat pod zadaným schématem s použitím oprávnění definovaných v tomto schématu.

Alternativní metodou zadání jména schématu je konfigurační klíčové slovo CURRENTPACKAGESET rozhraní CLI/ODBC.

Následující jména sad balíků jsou vyhrazená: "NULLID", "NULLIDR1", "NULLIDRA".

Hodnoty SQL_ATTR_REOPT a SQL_ATTR_CURRENT_PACKAGE_SET se vzájemně vylučují, takže je-li nastavena jedna z nich, není povoleno použití druhé.

Klíčové slovo MapBigintCDefault konfigurace rozhraní CLI/ODBC

Popis klíčového slova:
Určuje výchozí typ jazyka C sloupců a značek parametru typu BIGINT.
Syntaxe v souboru db2cli.ini:
MapBigintCDefault = 0 | 1 | 2
Výchozí nastavení:
Výchozí reprezentace typu jazyka C pro data BIGINT je SQL_C_BIGINT.
Poznámky k použití:
 

Klíčové slovo MapBigintCDefault řídí typ jazyka C, který se používá, je-li pro sloupce a značky parametru BIGINT zadána hodnota SQL_C_DEFAULT. Toto klíčové slovo by mělo být používáno primárně s aplikacemi společnosti Microsoft, jako např. Microsoft Access, které nezvládnou práci s osmibajtovými celými čísly. Klíčové slovo MapBigintCDefault nastavte následujícím způsobem:

Toto klíčové slovo ovlivní chování funkcí CLI, kde může být hodnota SQL_C_DEFAULT zadána jako typ jazyka C, např. SQLBindParameter(), SQLBindCol() nebo SQLGetData().

Klíčové slovo DescribeOutputLevel konfigurace rozhraní CLI/ODBC

Popis klíčového slova:
Nastaví úroveň informací popisu výstupního sloupce, která je vyžadována ovladačem CLI během požadavků přípravy nebo popisu.
Syntaxe v souboru db2cli.ini:
DescribeOutputLevel = 0 | 1 | 2 | 3
Výchozí nastavení:
Vyžaduje informace popisu uvedené v úrovni 2 v části 25.
Poznámky k použití:
 

Toto klíčové slovo řídí množství informací, které ovladač CLI vyžaduje při požadavku přípravy a popisu. Podle výchozího nastavení, když server obdrží požadavek popisu, vrátí informace obsažené v úrovni 2 části 25 pro sloupce výsledné sady. Aplikace ovšem všechny tyto informace zřejmě nebude potřebovat nebo může potřebovat některé další.

Nastavení klíčového slova DescribeOutputLevel na úroveň, která odpovídá potřebám klientské aplikace, může zvýšit výkon, protože data popisu přenášená mezi klientem a serverem jsou omezena na minimální množství, které aplikace vyžaduje. Pokud je klíčové slovo DescribeOutputLevel nastaveno příliš nízko, může to ovlivnit funkčnost aplikace (v závislosti na požadavcích aplikace). Funkce CLI pro načtení informací popisu nemusí v takovém případě selhat, ale vrácené informace mohou být neúplné.

Podporovaná nastavení klíčového slova DescribeOutputLevel jsou následující:

Následující tabulka uvádí seznam polí tvořících informace popisu, které server vrací při přijetí požadavku přípravy nebo popisu. Tato pole jsou seskupena do úrovní a klíčové slovo DescribeOutputLevel konfigurace rozhraní CLI/ODBC řídí, které úrovně informací popisu ovladač CLI vyžaduje.

Poznámka:
Ne všechny úrovně informací popisu jsou podporovány všemi servery DB2. Všechny úrovně informací popisu jsou podporovány následujícími servery DB2: DB2 Universal Database (UDB) for Linux , UNIX a Windows verze 8 a vyšší, DB2 UDB for z/OS verze 8 a vyšší a DB2 UDB for iSeries verze 5 vydání 3 a vyšší. Všechny ostatní servery DB2 podporují pouze nastavení 2 nebo 0 klíčového slova DescribeOutputLevel.
Tabulka 25. Úrovně informací popisu
Level 1 Level 2 Level 3
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
všechna pole úrovně 1 a:
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
všechna pole úrovní 1
a 2 a:
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
[ Začátek stránky |Předchozí stránka | Další stránka | Obsah ]