Applikasjonsutvikling: CLI (Call Level Interface)

| | |

CLI/ODBC-konfigurasjonsnøkkelordet Trusted_Connection

|

|
|
Beskrivelse av nøkkelordet:
|
Gjøre det mulig å opprette en forbindelse med den gjeldende autentiserte brukeren. |
|
Syntaks:
|
Trusted_Connection=Yes | |
Merk:
|
Dette nøkkelordet har ingen virkning hvis det |er definert i filen db2cli.ini. Det må i stedet oppgis |i tilkoblingsstrengen til SQLDriverConnect().
|
|
Standardverdier:
|
DB2 CLI bruker bruker-IDen og passordet som blir oppgitt i |tilkoblingsstrengen til SQLDriverConnect(), ikke den gjeldende autentiserte brukeren. |
|
Merknader om bruk:
|
|

DB2 CLI-applikasjoner som kobler seg til en database, kobler seg vanligvis |til ved hjelp av funksjonen SQLDriverConnect(). Ett av inndataargumentene for denne funksjonen |er DriverCompletion-verdien, som bestemmer når et vindu vil bli |åpnet. Dette er verdiene for DriverCompletion :

| | |
Merk:
|
Du finner mer informasjon om DriverCompletion i |dokumentasjonen for SQLDriverConnect().
|

Enkelte applikasjoner, for |eksempel de i et Kerberos-miljø, krever kanskje at en bruker må kunne koble seg |til en DB2 UDB-tjener uten å oppgi en bruker-ID og et passord. |Hvis applikasjonen bruker |alternativet SQL_DRIVER_NO_PROMPT på SQLDriverConnect()-kallet, blir det forsøkt å opprette |en tilkobling uten brukerautentisering. Da er ikke dette nøkkelordet |obligatorisk.

|

Hvis en tredjepartsapplikasjon er involvert, og forespørselsnivået |som brukes er noe annet enn |SQL_DRIVER_NO_PROMPT, åpner DB2 CLI et vindu for å be om informasjonen som mangler. |Hvis Trusted_Connection |settes til Yes, ved å oppgi det til tilkoblingsstrengen for SQLDriverConnect() ("Trusted_Connection=Yes"), |overser DB2 CLI eventuell informasjon om bruker-ID og passord (inkludert tomme strenger) fra tilkoblingsstrengen |og overser forespørselsnivået for tilkoblingsfunksjonen. DB2 CLI bruker den gjeldende |autentiserte brukeren til å foresøke å opprette tilkoblingen til databasen. |Hvis tilkoblingsforsøket mislykkes, |blir brukeren spurt om bruker-ID og passord.

|

Dette nøkkelordet brukes bare i tilkoblingsstrengen |for SQLDriverConnect(). Det har ingen virkning å definere |det i filen db2cli.ini.

|
|

Oppdatering av feilsøkingstabell for SQLDescribeParam-funksjonen (CLI)

SQLDescribeParam()-funksjonen returnerer beskrivelsen av et parametermerke som er knyttet til en klargjort SQL-setning.

Feilsøkingstabellen er oppdatert med SQLSTATE HYC00.

Diagnostics

Tabell 24. SQLDescribeParam SQLSTATEs
SQLSTATE Description Explanation
HYC00 Driver not capable The schema function stored procedures are not accessible on the server. Install the schema function stored procedures on the server and ensure they are accessible.

Asynkron utføring av CLI (Call Level Interface)

DB2 Call Level Interface (DB2 CLI) kan kjøre et delsett med funksjoner asynkront. DB2 CLI-styreprogrammet returnerer kontrollen til applikasjonen etter kallet til funksjonen, men før den funksjonen er fullført. Funksjonen returnerer SQL_STILL_EXECUTING hver gang den blir kalt opp, helt til den er fullført, og da returnerer den en annen verdi (for eksempel SQL_SUCCESS).

Asynkron utføring har bare effekt på operativsystemer med enkelttrådsbehandling (single-threaded). Applikasjoner som kjøres på operativsystemer med flertrådsbehandling, skal utføre funksjoner på forskjellige tråder. Asynkron utføring er mulig for de funksjonene som vanligvis sender en forespørsel til tjeneren og deretter venter på et svar. I stedet for å vente vil da en funksjon som kjører asynkront, returnere kontrollen til applikasjonen. Applikasjon kan da utføre andre oppgaver eller returnere kontrollen til operativsystemet, og bruker et avbrudd (interrupt) til å sjekke funksjonen gjentatte ganger til den returnerer en annen kode enn SQL_STILL_EXECUTING.

Støtte for asynkron utføring av CLI finnes i DB2 Universal Database (UDB) fra og med versjon 8.2 opprettingspakke 1 (tilsvarer versjon 8.1 opprettingspakke 8). Hvis du vil ha mer dokumentasjon om denne funksjonen, kan du slå opp i DB2 UDB versjon 7 Informasjonssenter på http://publib.boulder.ibm.com/infocenter/db2v7luw/index.jsp. All informasjon i dokumentasjonen for versjon 7 gjelder også for versjon 8.2 opprettingspakke 1 (tilsvarer versjon 8.1 opprettingspakke 8) og senere. DB2 versjon 8 Informasjonssenter inneholder ikke dokumentasjon om denne funksjonen.

Tilkoblingsattributtet SQL_ATTR_PING_DB

SQL_ATTR_PING_DB (DB2 CLI v8.2)

SQL_ATTR_PING_DB er et 32-bits heltall som brukes sammen med SQLGetConnectAttr()-funksjonen til å finne svartiden i nettverket for den eksisterende tilkoblingen mellom DB2 UDB-klienten og DB2 UDB-tjeneren. Svartiden blir rapportert i mikrosekunder.

Hvis det er opprettet en tilkobling tidligere og den er slettet av databasen, blir verdien 0 rapportert. Hvis tilkoblingen er lukket av applikasjonen, rapporteres SQLSTATE 08003. Dette tilkoblingsattributtet kan returneres av SQLGetConnectAttr(), men det kan ikke defineres av SQLSetConnectAttr(). Eventuelle forsøk på å definere dette attributtet, vil resultere i SQLSTATE HYC00 (Driver not capable).

SQLBindParameter-funksjon (CLI)

I dokumentasjonen for SQLBindParameter-funksjonen er beskrivelsen i avsnittet om Input-parameteren feil. Dette er riktig beskrivelse:

Input-parameter
A 0 ColumnSize means that DB2 CLI will use the maximum length for the SQL type provided as the size of the column or stored procedure parameter. DB2 CLI will perform any necessary conversions using this size.

SQLMoreResults-funksjon (CLI)

I dokumentasjonen for SQLMoreResults-funksjonen er det ved en feil referert til SQL_ATTR_ROW_ARRAY_SIZE-setningsattributtet. Riktig setningsattributt er SQL_ATTR_PARAMSET_SIZE. Usage-avsnittet skal se slik ut:

This function is used to return multiple results set in a sequential manner upon the execution of:

Ekstra miljøattributter

I tillegg til at disse attributtene er CLI-tilkoblingsattributter, støttes de også som CLI-miljøattributter:

Hvis du vil vite mer om disse attributtene, kan du lese dokumentasjonen om CLI-tilkoblingsattributtene i DB2 Informasjonssenter eller i boken CLI Guide and Reference Volume 2 .

Krav for dynamiske pekere som kan blas (dynamic scrollable cursors)

Hvis du skal utføre oppdateringer og slettinger på rader i resultatsettet til en peker som kan blas, må UPDATE- eller DELETE-setningen omfatte alle kolonnene for minst en entydig nøkkel i basistabellen. Dette kan være primærnøkkelen eller en annen entydig nøkkel.

CLI/ODBC-konfigurasjonsnøkkelordet RetCatalogAsCurrServer

Beskrivelse av nøkkelordet:
Katalogfunksjoner returnerer CURRENT SERVER-verdien i stedet for null-verdien for katalogkolonnene.
Syntaks for db2cli.ini-nøkkelordet:
RetCatalogAsCurrServer= 0 | 1
Standardverdier:
Hvis måldatabasesystemet returnerer null for katalogkolonnene, vil ikke CURRENT SERVER-verdien bli erstattet.
Merknader om bruk:
Hvis katalogfunksjonene for måldatabasesystemet returnerer en null-verdi for katalogkolonnene og RetCatalogAsCurrServer blir satt til 1, returnerer databasesystemet CURRENT SERVER-verdien i stedet.

La oss for eksempel anta at katalogfunksjonen SQLTables() returnerer et resultatsett der verdiene i TABLE_CAT-kolonnen er null-verdier. Hvis du setter RetCatalogAsCurrServer til 1, returnerer databasesystemet CURRENT SERVER-verdien i TABLE_CAT-kolonnen.

Merk:
Dette nøkkelordet støttes av DB2 UDB for Linux, UNIX og Windows versjon 8.2 opprettingspakke 3 (tilsvarer versjon 8.1 opprettingspakke 10) og senere.

CLI/ODBC-konfigurasjonsnøkkelordet ReceiveTimeout

Beskrivelse av nøkkelordet:
Oppgi tiden i sekunder det skal ventes på et svar fra tjeneren på en etablert tilkobling før forsøket avbrytes og det blir generert en tidsavbruddsfeil for kommunikasjonen.
Syntaks for db2cli.ini-nøkkelordet:
ReceiveTimeout = 0 | 1 | 2 | ... | 32767
Standardverdier:
Klienten venter uendelig på et svar fra tjeneren på en etablert tilkobling.
Tilsvarende tilkoblingsattributt:
SQL_ATTR_RECEIVE_TIMEOUT
Merknader om bruk:
Standardverdien 0 betyr at klienten venter uendelig på et svar. Denne verdien har ingen virkning under opprettelse av tilkobling, og den støttes bare for TCP/IP og blir derfor oversett for alle andre protokoller.

Tilkoblingsattributtet SQL_ATTR_RECEIVE_TIMEOUT

SQL_ATTR_RECEIVE_TIMEOUT (DB2 CLI v8)
En 32-bits heltallsverdi som er det antall sekunder en klient skal vente på et svar fra en tjener på en etablert tilkobling før forsøket avbrytes og det blir generert en tidsavbruddsfeil for kommunikasjonen. Standardverdien 0 betyr at klienten venter uendelig på et svar. Denne verdien har ingen virkning under opprettelse av tilkobling, og den støttes bare for TCP/IP og blir derfor oversett for alle andre protokoller. Støttede verdier er heltall fra 0 til 32767.

CLI/ODBC-konfigurasjonsnøkkelordet Reopt

Beskrivelse av nøkkelordet:
Aktiver spørreoptimalisering eller reoptimalisering for SQL-setninger som har spesialregistre eller parametermerker.
Syntaks for db2cli.ini-nøkkelordet:
Reopt = 2 | 3 | 4
Standardverdier:
Det utføres ingen spørreoptimalisering når spørringen utføres. Standardanslagene som er valgt av kompilatoren, brukes for spesialregistre eller parametermerker.
Tilsvarende setning og tilkoblingsattributt:
SQL_ATTR_REOPT
Merknader om bruk:
Optimaliseringen utføres ved å bruke verdier som er tilgjengelige når spørringen kjøres, for spesialregistrene eller parametermerkene i stedet for standardanslagene som er valgt av kompilatoren. Dette er de gyldige verdiene for nøkkelordet: "NULLIDR1" og "NULLIDRA" er reserverte pakkesettnavn, og når de brukes, er henholdsvis REOPT ONCE og REOPT ALWAYS underforstått. Disse pakkesettene må opprettes eksplisitt med disse kommandoene:
db2 bind db2clipk.bnd collection NULLIDR1
db2 bind db2clipk.bnd collection NULLIDRA
Hvis både nøkkelordet Reopt og nøkkelordet CurrentPackageSet blir oppgitt, har CurrentPackageSet forrang.

Setningen og tilkoblingsattributtet SQL_ATTR_REOPT

SQL_ATTR_REOPT (DB2 CLI v8)
En 32-bits heltallsverdi som aktiverer spørreoptimalisering for SQL-setninger som inneholder spesialregistre eller parametermerker. Optimaliseringen utføres ved å bruke verdier som er tilgjengelige når spørringen kjøres, for spesialregistre eller parametermerker i stedet for standardanslagene som er valgt av kompilatoren. Dette er de gyldige verdiene for attributtet: "NULLIDR1" og "NULLIDRA" er reserverte pakkesettnavn, og når de brukes, er henholdsvis REOPT ONCE og REOPT ALWAYS underforstått. Disse pakkesettene må opprettes eksplisitt med disse kommandoene:
db2 bind db2clipk.bnd collection NULLIDR1
db2 bind db2clipk.bnd collection NULLIDRA
SQL_ATTR_REOPT og SQL_ATTR_CURRENT_PACKAGE_SET utelukker hverandre, så hvis det ene blir oppgitt, er ikke det andre tillatt.

CLI/ODBC-konfigurasjonsnøkkelordet CurrentPackageSet

Beskrivelse av nøkkelordet:
Utfører SET CURRENT PACKAGESET-setningen etter hver tilkobling.
Syntaks for db2cli.ini-nøkkelordet:
CurrentPackageSet = skjemanavn
Standardverdier:
Leddet blir ikke tilføyd.
Tilsvarende tilkoblingsattributt:
SQL_ATTR_CURRENT_PACKAGE_SET
Merknader om bruk:

Dette alternativet utfører SQL-setningen SET CURRENT PACKAGESET med CurrentPackageSet-verdien etter hver tilkobling til en database. Som standard blir ikke leddet tilføyd.

SQL-setningen SET CURRENT PACKAGESET definerer skjemanavnet (samlings-IDen) som brukes til å velge pakken som skal brukes for senere SQL-setninger.

CLI/ODBC-applikasjoner utfører dynamiske SQL-setninger. Ved hjelp av dette alternativet kan du styre hvilke rettigheter som brukes til å kjøre disse setningene:

SQL-setningene fra CLI/ODBC-applikasjonene vil nå bli kjørt under det oppgitte skjemaet og bruke rettighetene som er definert der.

Disse pakkesettnavnene er reservert: "NULLID ", "NULLIDR1", "NULLIDRA".

Hvis både nøkkelordet Reopt og nøkkelordet CurrentPackageSet blir oppgitt, har CurrentPackageSet forrang.

Tilkoblingsattributtet SQL_ATTR_CURRENT_PACKAGE_SET

SQL_ATTR_CURRENT_PACKAGE_SET (DB2 CLI v5)
En null-avsluttet tegnstreng som viser skjemanavnet (samlings-IDen) som brukes til å velge pakken for senere SQL-setninger. Når du bruker dette attributtet, blir SQL-setningen SET CURRENT PACKAGESET utført. Hvis dette attributtet blir definert før en tilkobling, utføres SQL-setningen SET CURRENT PACKAGESET på tilkoblingstidspunktet.

CLI/ODBC-applikasjoner utfører dynamiske SQL-setninger. Ved hjelp av dette tilkoblingsattributtet kan du styre hvilke rettigheter som brukes til å kjøre disse setningene:

SQL-setningene fra CLI/ODBC-applikasjonene vil nå bli kjørt under det oppgitte skjemaet og bruke rettighetene som er definert der.

En alternativ måte å definere skjemanavnet på, er å bruke CLI/ODBC-konfigurasjonsnøkkelordet CURRENTPACKAGESET.

Disse pakkesettnavnene er reservert: "NULLID ", "NULLIDR1", "NULLIDRA".

SQL_ATTR_REOPT og SQL_ATTR_CURRENT_PACKAGE_SET utelukker hverandre, så hvis det ene blir oppgitt, er ikke det andre tillatt.

CLI/ODBC-konfigurasjonsnøkkelordet MapBigintCDefault

Beskrivelse av nøkkelordet:
Oppgi standard C-type for BIGINT-kolonner og -parametermerker.
Syntaks for db2cli.ini-nøkkelordet:
MapBigintCDefault = 0 | 1 | 2
Standardverdier:
Standard C-type-fremstilling for BIGINT-data er SQL_C_BIGINT.
Merknader om bruk:
 

MapBigintCDefault styrer C-typen som brukes når SQL_C_DEFAULT spesifiseres for BIGINT-kolonner og -parametermerker. Nøkkelordet skal primært brukes med Microsoft-applikasjoner slik som Microsoft Access, som ikke kan håndtere heltall med 8 byte. Definer MapBigintCDefault slik:

Dette nøkkelordet påvirker virkemåter til CLI-funksjoner der SQL_C_DEFAULT kan oppgis som en C-type, som for eksempel SQLBindParameter(), SQLBindCol() og SQLGetData().

CLI/ODBC-konfigurasjonsnøkkelordet DescribeOutputLevel

Beskrivelse av nøkkelordet:
Definer nivået på beskrivende informasjon i utdatakolonner som blir forespurt av CLI-styreprogrammet ved PREPARE- og DESCRIBE-forespørsler.
Syntaks for db2cli.ini-nøkkelordet:
DescribeOutputLevel = 0 | 1 | 2 | 3
Standardverdier:
Forespør den beskrivende informasjonen som vises på nivå 2 i tabell 25.
Merknader om bruk:
 

Dette nøkkelordet styrer mengden informasjon som CLI-styreprogrammet forespør på en PREPARE- eller DESCRIBE-forespørsel. Når tjeneren mottar en forespørsel om beskrivelse, returnerer den informasjonen i nivå 2 i tabell 25 for resultatsettkolonnene som standard. Det er imidlertid ikke sikkert at applikasjonen trenger all denne informasjonen, eller den kan hende den trenger mer informasjon.

Du kan forbedre ytelsen ved å definere nøkkelordet DescribeOutputLevel ut i fra klientapplikasjonens behov, fordi beskrivelsesdataene som overføres mellom klienten og tjeneren blir begrenset til det som er nødvendig for applikasjonen. Hvis innstillingen for DescribeOutputLevel er for lav, kan det påvirke funksjonaliteten til applikasjonen. CLI-funksjonene som henter den beskrivende informasjonen mislykkes ikke nødvendigvis, men dataene de returnerer kan være ufullstendige.

Gyldige innstillinger for DescribeOutputLevel:

Tabellen nedenfor inneholder feltene som utgjør den beskrivende informasjonen som tjeneren returnerer når den mottar en klargjørings- eller beskrivelsesforespørsel. Feltene er gruppert i nivåer, og CLI/ODBC-konfigurasjonsnøkkelordet DescribeOutputLevel styrer hvilke nivåer av beskrivende informasjon CLI-styreprogrammet ber om.

Merk:
Ikke alle nivåer av beskrivende informasjon er støttet på alle DB2-tjenere. Alle nivåer av beskrivende informasjon støttes på følgende DB2-tjenere: DB2 Universal Database (UDB) for Linux, UNIX og Windows versjon 8 og senere, DB2 UDB for z/OS versjon 8 og senere og DB2 UDB for iSeries versjon 5 utgave 3 og senere. Alle andre DB2-tjenere støtter bare verdiene 2 og 0 for DescribeOutputLevel.
Tabell 25. Nivåer for beskrivende informasjon
Nivå 1 Nivå 2 Nivå 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
alle felt på nivå 1 pluss:
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
alle felt på nivå 1
og 2 pluss:
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
[ Øverst på siden |Forrige side | Neste side | Innhold ]