Développement d'applications : CLI (Call Level Interface)

| | |

Mot clé de configuration CLI/ODBC Trusted_Connection

|

|
|
Description du mot clé :
|
Il permet à l'utilisateur autorisé en cours d'établir une connexion. |
|
Syntaxe :
|
Trusted_Connection=Yes | |
Remarque :
|
Ce mot clé n'a pas d'effet s'il est |défini dans le fichier db2cli.ini. Par contre il |doit être fourni dans la chaîne de connexion au niveau de la |fonction SQLDriverConnect().
|
|
Paramètre par défaut :
|
DB2 CLI utilise les informations de mot de passe et d'ID d'utilisateur |fournies dans la chaîne de connexion au niveau de la fonction SQLDriverConnect(), et non pas |celles de l'utilisateur autorisé en cours. |
|
Remarques sur la syntaxe :
|
|

En règle générale, les applications DB2 CLI se connectent à une base |de données à l'aide de la fonction SQLDriverConnect(). L'un des |arguments d'entrée de cette fonction, la valeur DriverCompletion, |détermine le moment de l'ouverture d'une fenêtre. Les différentes valeurs |de DriverCompletion sont les suivantes :

| | |
Remarque :
|
Vous trouverez des informations détaillées sur la valeur |DriverCompletion dans la documentation de SQLDriverConnect().
|

Certaines |applications, celles de l'environnement Kerberos par exemple, nécessitent |qu'un utilisateur puisse se connecter à un serveur DB2 UDB sans fournir d'ID |utilisateur ou de mot de passe. |Si l'application utilise l'option SQL_DRIVER_NO_PROMPT pour appeler la fonction |SQLDriverConnect(), une tentative de connexion est effectuée sans authentification |d'utilisateur. Par conséquent, ce mot clé n'est pas nécessaire.

|

Si une |application tierce est impliquée et que le niveau d'invite de |l'application est différent de SQL_DRIVER_NO_PROMPT, DB2 CLI ouvre une fenêtre |pour demander les informations manquantes. |Si vous définissez Trusted_Connection sur Yes, dans la chaîne de connexion |d'entrée pour la fonction SQLDriverConnect() ("Trusted_Connection=Yes"), |DB2 CLI ignore toute chaîne d'ID utilisateur et de mot de passe (y compris les chaînes |vierges) de la chaîne de connexion et ignore le niveau d'invite de la fonction |de connexion. DB2 CLI prend en compte l'utilisateur autorisé en cours pour |relancer une tentative de connexion à la base de données. |Si cette tentative échoue, l'utilisateur est invité à fournir son ID et son mot |de passe.

|

Ce mot clé est utilisé uniquement dans la chaîne de |connexion pour la fonction SQLDriverConnect(). Si vous le définissez dans le |fichier db2cli.ini, il n'a aucun effet.

|
|

Mise à jour de table de diagnostics pour la fonction SQLDescribeParam (CLI)

La fonction SQLDescribeParam() renvoie la description d'un marqueur de paramètre associé à une instruction SQL préparée.

La table de diagnostics a été mise à jour avec SQLSTATE HYC00.

Diagnostics

Tableau 24. Etats SQL SQLDescribeParam
Etat SQL Description Explications
HYC00 Incapacité du pilote Les procédures mémorisées de la fonction de schéma ne sont pas accessibles sur le serveur. Vous devez installer les procédures mémorisées de la fonction de schéma sur le serveur et vérifier qu'elles deviennent accessibles.

Exécution asynchrone de Call Level Interface

DB2 Call Level Interface (DB2 CLI) peut exécuter un sous-ensemble de fonctions de façon asynchrone. Le pilote DB2 CLI redonne le contrôle à l'application après l'appel de la fonction mais avant la fin de l'exécution de cette fonction. La fonction renvoie SQL_STILL_EXECUTING chaque fois qu'elle est appelée et jusqu'à la fin de l'exécution ; à ce moment là, elle renvoie une valeur différente (par exemple, SQL_SUCCESS).

Une exécution asynchrone est profitable uniquement sur des systèmes d'exploitation monoprocessus. Les applications exécutées sur des systèmes d'exploitation multiprocessus doivent exécuter les fonctions sur des unités d'exécution séparées. L'exécution asynchrone est possible pour les fonctions qui envoient normalement une requête au serveur, puis attendent une réponse. Plutôt que d'attendre, une fonction s'exécutant de façon asynchrone rend le contrôle à l'application. L'application effectue alors d'autres tâches, ou renvoie le contrôle au système d'exploitation ; à l'aide d'une interruption, elle interroge plusieurs fois la fonction jusqu'à la réception d'un code de retour autre que SQL_STILL_EXECUTING.

La prise en charge de l'exécution asynchrone de l'interface CLI est incluse dans DB2 Universal Database (UDB), à partir du FixPak 1 de la version 8.2 (équivalente de la version 8.1, FixPak 8). Vous trouverez de la documentation relative à cette fonction sur le centre de documentation DB2 UDB Version 7 à l'adresse suivante : http://publib.boulder.ibm.com/infocenter/db2v7luw/index.jsp. L'ensemble des informations que contient la documentation de la version 7 s'applique au FixPak 1 de la version 8.2 (équivalente de la version 8.1, FixPak 8) et supérieur. Le Centre de documentation de la version 8 de DB2 ne contient aucune autre documentation relative à cette fonction.

Attribut de connexion SQL_ATTR_PING_DB

SQL_ATTR_PING_DB (DB2 CLI v 8.2)

SQL_ATTR_PING_DB est un nombre entier 32 bits qui est utilisé avec la fonction SQLGetConnectAttr() afin d'obtenir le temps de réponse du réseau de la connexion existante entre le client DB2 UDB et le serveur DB2 UDB. Le temps de réponse est reporté en microsecondes.

Si une connexion a été préalablement établie et supprimée par la base de données, la valeur reportée est 0. Si la connexion a été arrêtée par l'application, alors la valeur SQLSTATE reportée est 08003. Cet attribut de connexion peut être renvoyé par SQLGetConnectAttr(), mais ne peut pas être défini par SQLSetConnectAttr(). Toute tentative de définition de cet attribut va engendrer une valeur SQLSTATE de HYC00 (Incapacité du pilote).

Fonction SQLBindParameter (CLI)

Dans la documentation de la fonction SQLBindParameter, la description contenue dans la section du paramètre d'entrée est incorrecte. La description correcte est la suivante :

Paramètre d'entrée
Un paramètre ColumnSize de 0 signifie que DB2 CLI va utiliser la longueur maximale pour le type SQL, comme taille de la colonne ou paramètre de procédure mémorisée. DB2 CLI va effectuer toute conversion nécessaire avec cette taille.

Fonction SQLMoreResults (CLI)

Dans la documentation relative à la fonction SQLMoreResults, la référence à l'attribut d'instruction SQL_ATTR_ROW_ARRAY_SIZE est incorrecte. L'attribut d'instruction correct est SQL_ATTR_PARAMSET_SIZE. La section Utilisation doit être comprise comme suit :

Cette fonction est utilisée pour renvoyer plusieurs ensembles de résultats multiples de façon séquentielle sur l'exécution :

Attributs d'environnement supplémentaires

Les attributs CLI ci-après sont non seulement des attributs de connexion CLI mais aussi des attributs d'environnement CLI :

Pour des informations sur ces attributs, voir la documentation sur les attributs de connexion CLI dans le Centre de documentation DB2 ou dans le manuel CLI Guide and Reference Volume 2.

Curseurs flottants dynamiques

Pour effectuer des mises à jour et des suppressions de ligne dans l'ensemble de résultats d'un curseur flottant dynamique, l'instruction UPDATE ou DELETE doit inclure toutes les colonnes d'au moins une clé unique dans la table de base. Il peut s'agir de la clé primaire ou de toute autre clé unique.

Mot clé de configuration RetCatalogAsCurrServer CLI/ODBC

Description du mot clé :
Les foncions de catalogue renvoient la valeur CURRENT SERVER au lieu de la valeur Null pour les colonnes de catalogue.
Syntaxe du mot clé db2cli.ini :
RetCatalogAsCurrServer= 0 | 1
Paramètre par défaut :
Si le système DBMS cible renvoie une valeur Null pour les colonnes de catalogue, la valeur CURRENT SERVER ne sera pas remplacée.
Remarques sur la syntaxe :
Si les fonctions de catalogue pour le système DBMS cible renvoient une valeur Null pour les colonnes de catalogue, la définition de RetCatalogAsCurrServer sur 1 a pour résultat le renvoi par le DBMS d'une valeur CURRENT SERVER.

Par exemple, supposons que la fonction de catalogue SQLTables() renvoie un ensemble de résultats dans lequel les valeurs de la colonne TABLE_CAT sont des valeurs Null. La définition de RetCatalogAsCurrServer sur 1 engendre le renvoi par le système DBMS d'une valeur CURRENT SERVER dans la colonne TABLE_CAT.

Remarque :
Ce mot clé est pris en charge par le FixPak 3 de la version 8.2 de DB2 UDB pour Linux, UNIX et Windows (équivalente de la version 8.1, FixPak 10) et supérieure.

Mot clé de configuration CLI/ODBC ReceiveTimeout

Description du mot clé :
Indique le délai d'attente en secondes pour une réponse du serveur sur une connexion établie avant la fin de la tentative et la génération d'une erreur de délai d'attente de communication.
Syntaxe du mot clé db2cli.ini :
ReceiveTimeout = 0 | 1 | 2 | ... | 32767
Paramètre par défaut :
Le client attend indéfiniment une réponse du serveur sur une connexion établie.
Attribut de connexion équivalent :
SQL_ATTR_RECEIVE_TIMEOUT
Remarques sur la syntaxe :
La valeur par défaut 0 indique que le client attend indéfiniment une réponse. Le délai d'attente de réception n'a aucun effet lors de l'établissement de la connexion ; il est pris en charge uniquement pour TCP/IP et est ignoré pour tout autre protocole.

Attribut de connexion SQL_ATTR_RECEIVE_TIMEOUT

SQL_ATTR_RECEIVE_TIMEOUT (DB2 CLI v8)
Valeur d'entier 32 bits correspondant au nombre de secondes de délai d'attente d'un client pour la réponse d'un serveur sur une connexion établie et ce, avant la fin de la tentative et la génération d'une erreur de délai d'attente de communication. La valeur par défaut 0 indique que le client attend indéfiniment une réponse. Le délai d'attente de réception n'a aucun effet lors de l'établissement de la connexion ; il est pris en charge uniquement pour TCP/IP et est ignoré pour tout autre protocole. Les valeurs admises sont des entiers compris entre 0 et 32 767.

Mot clé de configuration CLI/ODBC Reopt

Description du mot clé :
Active l'optimisation de requête ou la réoptimisation des instructions SQL comportant des registres ou des marqueurs de paramètre spéciaux.
Syntaxe du mot clé db2cli.ini :
Reopt = 2 | 3 | 4
Paramètre par défaut :
Aucune optimisation de requête ne se produit pendant le temps d'exécution des requêtes. Les évaluations par défaut choisies par le compilateur sont utilisées pour des registres ou des marqueurs de paramètre spéciaux.
Attribut de connexion et d'instruction équivalent :
SQL_ATTR_REOPT
Remarques sur la syntaxe :
L'optimisation se produit lorsque les valeurs disponibles lors de l'exécution des requêtes pour les registres ou marqueurs de paramètre spéciaux sont utilisées à la place des évaluations par défaut choisies par le compilateur. Les valeurs admises pour le mot clé sont les suivantes : "NULLIDR1" et "NULLIDRA" sont des noms réservés ; lorsqu'ils sont utilisés, les options REOPT ONCE et REOPT ALWAYS sont respectivement utilisées implicitement. Ces ensembles doivent être créés explicitement à l'aide des commandes suivantes :
db2 bind db2clipk.bnd collection NULLIDR1
db2 bind db2clipk.bnd collection NULLIDRA
Si les mots clés Reopt et CurrentPackageSet sont tous deux indiqués, CurrentPackageSet est prioritaire.

Attribut de connexion et d'instruction SQL_ATTR_REOPT

SQL_ATTR_REOPT (DB2 CLI v8)
Valeur d'entier 32 bits qui active l'optimisation de requête pour les instructions SQL contenant des registres ou des marqueurs de paramètre spéciaux. L'optimisation se produit lorsque les valeurs disponibles lors de l'exécution des requêtes pour les registres ou marqueurs de paramètre spéciaux sont utilisées à la place des évaluations par défaut choisies par le compilateur. Les valeurs admises pour l'attribut sont les suivantes : "NULLIDR1" et "NULLIDRA" sont des noms réservés ; lorsqu'ils sont utilisés, les options REOPT ONCE et REOPT ALWAYS sont respectivement utilisées implicitement. Ces ensembles doivent être créés explicitement à l'aide des commandes suivantes :
db2 bind db2clipk.bnd collection NULLIDR1
db2 bind db2clipk.bnd collection NULLIDRA
SQL_ATTR_REOPT et SQL_ATTR_CURRENT_PACKAGE_SET s'excluent mutuellement ; aussi, lorsque l'un est défini, l'autre n'est pas autorisé.

Mot clé de configuration CLI/ODBC CurrentPackageSet

Description du mot clé :
Lance l'instruction SET CURRENT PACKAGESET après chaque connexion.
Syntaxe du mot clé db2cli.ini :
CurrentPackageSet = nom de schéma
Paramètre par défaut :
La clause n'est pas jointe.
Attribut de connexion équivalent :
SQL_ATTR_CURRENT_PACKAGE_SET
Remarques sur la syntaxe :

Cette option lance l'instruction SQL SET CURRENT PACKAGESET avec la valeur CurrentPackageSet après chaque connexion à une base de données. Par défaut, cette clause n'est pas jointe.

L'instruction SQL SET CURRENT PACKAGESET définit le nom de schéma (identificateur de collection) utilisé pour la sélection du package qui sera utilisé pour les instructions SQL suivantes.

Les applications CLI/ODBC lancent des instructions SQL dynamiques. Cette option vous permet de contrôler les privilèges utilisés pour exécuter ces instructions :

Les instructions SQL lancées à partir des applications CLI/ODBC vont désormais s'exécuter sous le schéma indiqué et utiliser les privilèges définis ici.

Les noms d'ensemble suivants sont réservés : "NULLID ", "NULLIDR1" et "NULLIDRA".

Si les mots clés Reopt et CurrentPackageSet sont tous deux indiqués, CurrentPackageSet est prioritaire.

Attribut de connexion SQL_ATTR_CURRENT_PACKAGE_SET

SQL_ATTR_CURRENT_PACKAGE_SET (DB2 CLI v5)
Chaîne de caractères à terminaison nulle qui indique le nom de schéma (identificateur de collection) utilisé pour la sélection du package pour les instructions SQL suivantes. La définition de cet attribut entraîne le lancement de l'instruction SQL SET CURRENT PACKAGESET. Si cet attribut est défini avant une connexion, l'instruction SQL SET CURRENT PACKAGESET sera lancée au moment de la connexion.

Les applications CLI/ODBC lancent des instructions SQL dynamiques. Cet attribut de connexion vous permet de contrôler les privilèges utilisés pour exécuter ces instructions :

Les instructions SQL lancées à partir des applications CLI/ODBC vont désormais s'exécuter sous le schéma indiqué et utiliser les privilèges définis ici.

La définition du mot clé de configuration CLI/ODBC CURRENTPACKAGESET constitue une alternative à l'indication du nom de schéma.

Les noms d'ensemble suivants sont réservés : "NULLID ", "NULLIDR1" et "NULLIDRA".

SQL_ATTR_REOPT et SQL_ATTR_CURRENT_PACKAGE_SET s'excluent mutuellement ; aussi, lorsque l'un est défini, l'autre n'est pas autorisé.

Mot clé de configuration CLI/ODBC MapBigintCDefault

Description du mot clé :
Indiquez le type C par défaut des colonnes BIGINT et des marqueurs de paramètre.
Syntaxe du mot clé db2cli.ini :
MapBigintCDefault = 0 | 1 | 2
Paramètre par défaut :
La représentation du type C par défaut des données BIGINT est SQL_C_BIGINT.
Remarques sur la syntaxe :
 

MapBigintCDefault contrôle le type C utilisé lorsque SQL_C_DEFAULT est spécifié pour les colonnes BIGINT et les marqueurs de paramètre. Il est recommandé d'utiliser ce mot clé principalement avec les applications Microsoft (Microsoft Access, par exemple) qui ne gèrent pas les entiers à 8 octets. Définissez MapBigintCDefault comme suit :

Ce mot clé influence le comportement des fonctions CLI où SQL_C_DEFAULT a pu être spécifié en tant que type C (SQLBindParameter(), SQLBindCol() et SQLGetData(), par exemple).

Mot clé de configuration CLI/ODBC DescribeOutputLevel

Description du mot clé :
Définissez le niveau des informations de description de la colonne de résultat requises par le pilote CLI lors de la préparation ou de la description des requêtes.
Syntaxe du mot clé db2cli.ini :
DescribeOutputLevel = 0 | 1 | 2 | 3
Paramètre par défaut :
Demandez les informations de description répertoriées dans le niveau 2 du tableau 25.
Remarques sur la syntaxe :
 

Ce mot clé permet de contrôler la quantité d'informations que demande le pilote CLI lors d'une requête de préparation ou de description. Par défaut, lorsque le serveur reçoit une requête de description, il renvoie les informations contenues dans le niveau 2 du tableau 25 pour les colonnes d'ensemble de résultats. Toutefois, il se peut qu'une application n'aie pas besoin de toutes ces informations ou aie besoin d'informations supplémentaires.

Si vous définissez le mot clé DescribeOutputLevel à un niveau répondant aux besoins du client, l'application peut améliorer les performances car les données de description transférées entre le client et le serveur sont limitées à la quantité minimale que requiert l'application. Si la valeur attribuée à DescribeOutputLevel est trop basse, la fonctionnalité de l'application peut en être affectée (en fonction de la configuration requise de l'application). Les fonctions CLI permettant d'extraire les informations de description ne peuvent pas échouer dans ce cas, mais les informations renvoyées risquent d'être incomplètes.

Les paramètres pris en charge pour DescribeOutputLevel sont les suivants :

Le tableau ci-dessous répertorie les zones qui forment les informations de description que le serveur renvoie lorsqu'il reçoit une requête de préparation ou de description. Ces zones sont regroupées en niveaux, et le mot clé de configuration CLI/ODBC DescribeOutputLevel contrôle les niveaux d'informations de description que demande le pilote CLI.

Remarque :
Les niveaux d'informations de description ne sont pas tous pris en charge par tous les serveurs DB2. Ils sont tous pris en charge par les serveurs DB2 suivants : DB2 Universal Database (UDB) pour Linux, UNIX, et Windows version 8 et ultérieure, DB2 UDB pour z/OS version 8 et ultérieure, et DB2 UDB pour iSeries version 5, édition 3 et ultérieure. Tous les autres serveurs DB2 ne prennent en charge que le paramètre 2 ou 0 pour DescribeOutputLevel.
Tableau 25. Niveaux des informations de description
Niveau 1 Niveau 2 Niveau 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
toutes les zones du 
niveau  1 et :
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
toutes les zones des 
niveaux 1 et 2 et :
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
[ Début de page |Page précédente | Page suivante | Table des matières ]