Files
doc-fr/reference/ibm_db2/functions/db2-pconnect.xml
T
George Peter Banyard 7b4898e432 Update some EN revision number after commit revert
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@351753 c90b9560-bf6c-de11-be94-00142212c4b1
2020-11-29 23:39:46 +00:00

651 lines
23 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: jpauli Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.db2-pconnect" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>db2_pconnect</refname>
<refpurpose>
Retourne une connexion persistante à une base de données
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>resource</type><methodname>db2_pconnect</methodname>
<methodparam><type>string</type><parameter>database</parameter></methodparam>
<methodparam><type>string</type><parameter>username</parameter></methodparam>
<methodparam><type>string</type><parameter>password</parameter></methodparam>
<methodparam choice="opt"><type>array</type><parameter>options</parameter></methodparam>
</methodsynopsis>
<para>
Retourne une connexion persistante à une base de données IBM DB2
Universal Database, IBM Cloudscape ou Apache Derby.
</para>
<para>
Pour plus d'infirmations sur les connexions persistantes, voyez
<xref linkend='features.persistent-connections' />.
</para>
<para>
En appelant <function>db2_close</function> sur une connexion persistante,
vous recevrez toujours &true;, mais les connexions des clients DB2
demeureront ouvertes et attendront de servir la prochaine demande de la
fonction <function>db2_pconnect</function>.
</para>
<para>
Les utilisateurs de versions 1.9.0 ou plus de ibm_db2 doivent savoir que l'extension
exécutera un rollback sur une transaction dans une connexion persistente à la fin
de la requête, terminant ainsi la transaction. Ceci évite un blocage transactionnel
vers la requête suivante sur la même connexion si l'exécution du script se termine
avant la transaction.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>database</parameter></term>
<listitem>
<para>
L'alias de la base de données dans le catalogue du client DB2.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>username</parameter></term>
<listitem>
<para>
Le nom d'utilisateur avec lequel vous vous connectez à la base de
données.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>password</parameter></term>
<listitem>
<para>
Le mot de passe avec lequel vous vous connectez à la base de données.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>options</parameter></term>
<listitem>
<para>
Un tableau associatif des options de connexion qui affecteront le
comportement de la connexion, où les valeurs des clés incluent :
<variablelist>
<varlistentry>
<term><parameter>autocommit</parameter></term>
<listitem>
<para>
La valeur <literal>DB2_AUTOCOMMIT_ON</literal> active le autocommit
sur cette connexion.
</para>
<para>
La valeur <literal>DB2_AUTOCOMMIT_OFF</literal> désactive le
autocommit pour cette connexion.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>DB2_ATTR_CASE</parameter></term>
<listitem>
<para>
Passer la valeur <literal>DB2_CASE_NATURAL</literal> spécifie que les
noms de colonnes seront retournés dans leurs casses naturelles.
</para>
<para>
Passer la valeur <literal>DB2_CASE_LOWER</literal> spécifie que les
noms de colonnes seront retournés en minuscule.
</para>
<para>
Passer la valeur <literal>DB2_CASE_UPPER</literal> spécifie que les
noms de colonnes seront retournés en majuscule.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>CURSOR</parameter></term>
<listitem>
<para>
Passer la valeur <literal>DB2_FORWARD_ONLY</literal> spécifie un curseur
uniquement suivant pour une ressource de requête. C'est le type de curseur
par défaut et est supporté sur tous les serveurs de base de données.
</para>
<para>
Passer la valeur <literal>DB2_SCROLLABLE</literal> spécifie un
curseur scrollable pour une ressource de requête. Ce mode permet
un accès aléatoire aux lignes dans un jeu de résultats, mais actuellement,
n'est supporté que par la base de données IBM DB2 Universal.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
Les options suivantes sont disponibles depuis ibm_db2 version 1.7.0.
<variablelist>
<varlistentry>
<term><parameter>trustedcontext</parameter></term>
<listitem>
<para>
En passant la valeur DB2_TRUSTED_CONTEXT_ENABLE, le contexte de confiance
est activé pour cette connexion. Ce paramètre ne peut pas être activé
avec <function>db2_set_option</function>.
</para>
<para>
Cette option ne fonctionne que si la base est cataloguée, même si la base
est locale, ou si vous spécifiez un DSN complet lors de la création de la
connexion.
</para>
<para>
Pour cataloguer la base, utilisez la commande suivante :
</para>
<para>
<literallayout>db2 catalog tcpip node loopback remote &lt;SERVERNAME&gt; server &lt;SERVICENAME&gt;
db2 catalog database &lt;LOCALDBNAME&gt; as &lt;REMOTEDBNAME&gt; at node loopback
db2 "update dbm cfg using svcename &lt;SERVICENAME&gt;"
db2set DB2COMM=TCPIP</literallayout>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
Les options i5/OS suivantes sont disponibles depuis ibm_db2 version 1.5.1.
<tip>
<para>
Des attributs de connexion contradictoires, en conjonction avec une
connexion persistante peut produire des résultats indéterminés sur i5/OS.
La politique du site doit être établie pour toutes les applications qui
utilisent une connexion persistante. La valeur par défaut de
DB2_AUTOCOMMIT_ON est recommandée avec les connexions persistantes.
</para>
</tip>
<variablelist>
<varlistentry>
<term><parameter>i5_lib</parameter></term>
<listitem>
<para>
Une caractère qui indique la bibliothèque par défaut qui sera
utilisée pour résoudre les références de fichiers non qualifiées.
Cette option n'est pas valide si la connexion utilise le mode
de nommage système.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>i5_naming</parameter></term>
<listitem>
<para>
<literal>DB2_I5_NAMING_ON</literal> active le mode de nommage système
de DB2 UDB CLI iSeries. Les fichiers sont alors qualifiés avec le délimiteur
slash (/). Les fichiers non qualifiés sont résolus en utilisant la liste
de bibliothèque de la tâche.
</para>
<para>
<literal>DB2_I5_NAMING_OFF</literal> active le mode de nommage par défaut,
qui est le nommage SQL. Les fichiers sont alors qualifiés avec le point (.) .
Les fichiers non qualifiés sont résolus avec la bibliothèque par défaut,
ou bien l'identifiant de l'utilisateur courant.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>i5_commit</parameter></term>
<listitem>
<para>
L'attribut <parameter>i5_commit</parameter> doit être configuré avant
l'appel à <function>db2_pconnect</function>. Si la valeur est changée
après la connexion, et que la connexion s'effectue sur des données distantes,
alors ce changement n'aura pas d'effets, juqu'au prochain appel réussi
à <function>db2_pconnect</function>.
<note>
<para>
La directive du &php.ini; <parameter>ibm_db2.i5_allow_commit</parameter>==0
ou <literal>DB2_I5_TXN_NO_COMMIT</literal> est la valeur par défaut, mais peut
être remplacé par l'option <parameter>i5_commit</parameter>.
</para>
</note>
</para>
<para>
<literal>DB2_I5_TXN_NO_COMMIT</literal> : le contrôle de validation n'est pas utilisé.
</para>
<para>
<literal>DB2_I5_TXN_READ_UNCOMMITTED</literal> : les lectures incohérentes,
ou non répétables et les fantômes sont possibles.
</para>
<para>
<literal>DB2_I5_TXN_READ_COMMITTED</literal> : les lectures sont cohérentes.
Les lecteurs non répétables et les fantômes sont possibles.
</para>
<para>
<literal>DB2_I5_TXN_REPEATABLE_READ</literal> : les lectures cohérentes et
répétables, mais les fantômes sont possibles.
</para>
<para>
<literal>DB2_I5_TXN_SERIALIZABLE</literal> : les transactions sont activées.
les lectures incohérentes, ou non répétables et les fantômes sont impossibles.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>i5_query_optimize</parameter></term>
<listitem>
<para>
<literal>DB2_FIRST_IO</literal> : toutes les requêtes sont optimisées
dans le but de retourner la première page le plus rapidement possible.
Cet objectif fonctionne bien lorsque le résultat est contrôler par un
utilisateur qui a de bonnes chances d'annuler la requête après avoir vu
les premières réponses. Les requêtes codée avec une clause
<literal>OPTIMIZE FOR nnn ROWS</literal> respectent aussi cet objectif.
</para>
<para>
<literal>DB2_ALL_IO</literal> : toutes les requêtes sont optimisées
dans le but de traiter la requête complète le plus rapidement possible.
C'est une bonne option lorsque le résultat de la requête doit être
écrit dans un fichier ou un rapport, ou que l'interface accumule toutes
les données avant de les exporter. Les requêtes codées avec la clause
<literal>OPTIMIZE FOR nnn ROWS</literal> respectent aussi cet objectif.
C'est le comportement par défaut.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>i5_dbcs_alloc</parameter></term>
<listitem>
<para>
<literal>DB2_I5_DBCS_ALLOC_ON</literal> active le schéma d'allocation
DB2 6X pour la croissance des tailles de colonnes de translation DBCS.
</para>
<para>
<literal>DB2_I5_DBCS_ALLOC_OFF</literal> désactive le schéma d'allocation
DB2 6X pour la croissance des tailles de colonnes de translation DBCS.
<note>
<para>
La directive du &php.ini; <parameter>ibm_db2.i5_dbcs_alloc</parameter>==0
ou <literal>DB2_I5_DBCS_ALLOC_OFF</literal> est la valeur par défaut, mais peut
être remplacé par l'option <parameter>i5_dbcs_alloc</parameter>.
</para>
</note>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>i5_date_fmt</parameter></term>
<listitem>
<para>
<literal>DB2_I5_FMT_ISO</literal> : le format de date ISO
(<literal>International Organization for Standardization</literal>) est
utilisé : <literal>yyyy-mm-dd</literal>. C'est le format par défaut.
</para>
<para>
<literal>DB2_I5_FMT_USA</literal> : le format des États Unis d'Amérique
est utilisé : <literal>mm/dd/yyyy</literal>.
</para>
<para>
<literal>DB2_I5_FMT_EUR</literal> : le format de date européen
<literal>dd.mm.yyyy</literal> est utilisé.
</para>
<para>
<literal>DB2_I5_FMT_JIS</literal> : le format standard industriel japonais
<literal>yyyy-mm-dd</literal> est utilisé.
</para>
<para>
<literal>DB2_I5_FMT_MDY</literal> : le format de date
<literal>mm/dd/yyyy</literal> est utilisé.
</para>
<para>
<literal>DB2_I5_FMT_DMY</literal> : le format de date
<literal>dd/mm/yyyy</literal> est utilisé.
</para>
<para>
<literal>DB2_I5_FMT_YMD</literal> : le format de date
<literal>yy/mm/dd</literal> est utilisé.
</para>
<para>
<literal>DB2_I5_FMT_JUL</literal> : Le format de date julien
<literal>yy/ddd</literal> est utilisé.
</para>
<para>
<literal>DB2_I5_FMT_JOB</literal> : le format de date par défaut est utilisé.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>i5_date_sep</parameter></term>
<listitem>
<para>
<literal>DB2_I5_SEP_SLASH</literal> : un slash ( / ) est utilisé comme séparateur de date.
C'est le format par défaut.
</para>
<para>
<literal>DB2_I5_SEP_DASH</literal> : un tiret ( - ) est utilisé comme séparateur de date.
</para>
<para>
<literal>DB2_I5_SEP_PERIOD</literal> : un point ( . ) est utilisé comme séparateur de date.
</para>
<para>
<literal>DB2_I5_SEP_COMMA</literal> : une virgule ( , ) est utilisé comme séparateur de date.
</para>
<para>
<literal>DB2_I5_SEP_BLANK</literal> : un espace est utilisé comme séparateur de date.
</para>
<para>
<literal>DB2_I5_SEP_JOB</literal> : la configuration par défaut est utilisée
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>i5_time_fmt</parameter></term>
<listitem>
<para>
<literal>DB2_I5_FMT_ISO</literal> : le format d'heure ISO
(<literal>International Organization for Standardization</literal>) est
utilisé : <literal>hh.mm.ss</literal>. C'est le format par défaut.
</para>
<para>
<literal>DB2_I5_FMT_USA</literal> : le format des États-Unis d'Amérique
est utilisé : <literal>hh:mmxx</literal> est utilisé, où <literal>xx</literal>
vaut <literal>AM</literal> ou <literal>PM</literal>.
</para>
<para>
<literal>DB2_I5_FMT_EUR</literal> : le format d'heure européen
<literal>hh.mm.ss</literal> est utilisé.
</para>
<para>
<literal>DB2_I5_FMT_JIS</literal> : le format standard industriel japonais
est utilisé <literal>hh:mm:ss</literal>.
</para>
<para>
<literal>DB2_I5_FMT_HMS</literal> : le format <literal>hh:mm:ss</literal>
est utilisé.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>i5_time_sep</parameter></term>
<listitem>
<para>
<literal>DB2_I5_SEP_COLON</literal> : un deux-point ( : ) est utilisé comme
séparateur d'heure. C'est le défaut.
</para>
<para>
<literal>DB2_I5_SEP_PERIOD</literal> : un point ( . ) est utilisé comme
séparateur d'heure.
</para>
<para>
<literal>DB2_I5_SEP_COMMA</literal> : une virgule ( , ) est utilisée comme
séparateur d'heure.
</para>
<para>
<literal>DB2_I5_SEP_BLANK</literal> : un espace est utilisé comme
séparateur d'heure.
</para>
<para>
<literal>DB2_I5_SEP_JOB</literal> : le séparateur par défaut est utilisé.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>i5_decimal_sep</parameter></term>
<listitem>
<para>
<literal>DB2_I5_SEP_PERIOD</literal> : un point ( . ) est utilisé comme
séparateur décimal. C'est le séparateur par défaut.
</para>
<para>
<literal>DB2_I5_SEP_COMMA</literal> : une virgule ( , ) est utilisée comme
séparateur décimal.
</para>
<para>
<literal>DB2_I5_SEP_JOB</literal> : le séparateur par défaut est utilisé.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
Les options suivantes i5/OS sont disponibles depuis ibm_db2 version 1.8.0.
<variablelist>
<varlistentry>
<term><parameter>i5_libl</parameter></term>
<listitem>
<para>
Un caractère qui indique la bibliothèque qui sera utilisée pour résoudre
les références de fichiers non qualifiées. Spécifiez la liste de bibliothèque
sous la forme d'éléments séparés par des espaces :
<literal>'i5_libl'=>"MYLIB YOURLIB ANYLIB"</literal>.
<note>
<para>
i5_libl appelle <literal>qsys2/qcmdexc('cmd',cmdlen)</literal>, qui
est disponible depuis i5/OS V5R4.
</para>
</note>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retourne la ressource de connexion si la tentative de connexion réussie.
<function>db2_pconnect</function> essaie de réutiliser une ressource de
connexion existante qui correspond parfaitement aux paramètres tels que la base de données
<parameter>database</parameter>, l'utilisateur <parameter>username</parameter>
et le mot de passe <parameter>password</parameter>. Si la tentative de
connexion échoue, <function>db2_pconnect</function> retourne &false;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>ibm_db2 1.9.0</entry>
<entry>
Les transactions actives sur des connexions persistantes seront annulées à
la fin de chaque requête.
</entry>
</row>
<row>
<entry>ibm_db2 1.8.0</entry>
<entry>
L'option <parameter>i5_libl</parameter> est disponible pour les utilisateurs
de i5/OS.
</entry>
</row>
<row>
<entry>ibm_db2 1.7.0</entry>
<entry>
L'option <parameter>trustedcontext</parameter> est disponible.
</entry>
</row>
<row>
<entry>ibm_db2 1.5.1</entry>
<entry>
Les options <parameter>i5_lib</parameter>, <parameter>i5_naming</parameter>,
<parameter>i5_commit</parameter>,
<parameter>i5_query_optimize</parameter>,
<parameter>i5_dbcs_alloc</parameter>,
<parameter>i5_date_fmt</parameter>,
<parameter>i5_date_sep</parameter>,
<parameter>i5_time_fmt</parameter>, <parameter>i5_time_sep</parameter>
et <parameter>i5_decimal_sep</parameter> sont disponibles pour les utilisateurs
de i5/OS.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemple d'utilisation de <function>db2_pconnect</function></title>
<para>
Dans l'exemple suivant, le premier appel à
<function>db2_pconnect</function> retourne une nouvelle ressource de
connexion persistante. Le second appel à la fonction
<function>db2_pconnect</function> retourne une ressource de connexion
persistante qui réutilise la première ressource de connexion.
</para>
<programlisting role="php">
<![CDATA[
<?php
$database = 'EXEMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';
$pconn = db2_pconnect($database, $user, $password);
if ($pconn) {
echo "Connexion persistante réussie.";
}
else {
echo "Connexion persistante échouée.";
}
$pconn2 = db2_pconnect($database, $user, $password);
if ($pconn) {
echo "Deuxième connexion persistante réussie.";
}
else {
echo "Deuxième connexion persistante échouée.";
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Connexion persistante réussie.
Deuxième connexion persistante réussie.
]]>
</screen>
</example>
<example>
<title>Utilisation de contextes de confiance DB2</title>
<para>
L'exemple suivant montre comment activer un utilisateur de confiance,
basculer dessus, et obtenir un identifiant d'utilisateur.
</para>
<programlisting role="php">
<![CDATA[
<?php
$database = "SAMPLE";
$hostname = "localhost";
$port = 50000;
$authID = "db2inst1";
$auth_pass = "ibmdb2";
$tc_user = "tcuser";
$tc_pass = "tcpassword";
$dsn = "DATABASE=$database;HOSTNAME=$hostname;PORT=$port;
PROTOCOL=TCPIP;UID=$authID;PWD=$auth_pass;";
$options = array ("trustedcontext" => DB2_TRUSTED_CONTEXT_ENABLE);
$tc_conn = db2_pconnect($dsn, "", "", $options);
if($tc_conn) {
echo "Connexion de confiance réussie.\n";
if(db2_get_option($tc_conn, "trustedcontext")) {
$userBefore = db2_get_option($tc_conn, "trusted_user");
//Travail par l'utilisateur 1.
//Bascule sur l'utilisateur de confiance.
$parameters = array("trusted_user" => $tc_user,
"trusted_password" => $tcuser_pass);
$res = db2_set_option ($tc_conn, $parameters, 1);
$userAfter = db2_get_option($tc_conn, "trusted_user");
//Do more work as trusted user.
if($userBefore != $userAfter) {
echo "Utilisateur changé." . "\n";
}
}
db2_close($tc_conn);
}
else {
echo "Connexion de confiance échouée.\n";
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Connexion de confiance réussie.
Utilisateur changé
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>db2_connect</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->