Changeset 1103

Show
Ignore:
Timestamp:
07/16/08 18:04:03 (4 months ago)
Author:
sas
Message:

et de e...
Quant à f, c'est en bonne voie :-)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • traduc/trunk/postgresql/arch-dev.xml

    r973 r1103  
    44     par      $Author$ 
    55     révision $Revision$ --> 
    6 <!-- SAS : 20071107, PG83b2 --> 
    76 
    87 <chapter id="overview"> 
  • traduc/trunk/postgresql/backup.xml

    r1023 r1103  
    44     par      $Author$ 
    55     révision $Revision$ --> 
    6 <!-- SAS : 20080319, PG831 --> 
     6 
    77<chapter id="backup"> 
    88 <title>Sauvegardes et restaurations</title> 
  • traduc/trunk/postgresql/earthdistance.xml

    r973 r1103  
    1414 <para> 
    1515  Le module <filename>earthdistance</filename> fournit deux approches 
    16   différentes pour calculer les distances sur la surface de la Terre. Celle 
    17   décrit en premier dépend du package <filename>cube</filename> (qui 
    18   <emphasis>doit</emphasis> être installé avant 
    19   <filename>earthdistance</filename> pour que ce dernier puisse être installé). 
    20   La seconde est basée sur le type de données interne <type>point</type> en 
    21   utilisant longitude et latitude pour les coordonnées. 
     16  différentes pour calculer de grandes distances circulaires à la surface de la 
     17  Terre. La première dépend du package <filename>cube</filename> (qui 
     18  <emphasis>doit</emphasis> être installé pour que le module 
     19  <filename>earthdistance</filename> puisse l'être aussi). 
     20  La seconde est basée sur le type de données interne <type>point</type> et 
     21  utilise longitude et latitude pour les coordonnées. 
    2222 </para> 
    2323 
    2424 <para> 
    25   Dans ce module, la Terre est supposée parfaitement sphérique (si c'est 
    26   trop inexact pour vous, passez au projet <application><ulink 
     25  Dans ce module, la Terre est supposée parfaitement sphérique (si cette 
     26  hypothèse n'est pas acceptable, le projet <application><ulink 
    2727  url="http://www.postgis.org/">PostGIS</ulink></application> 
    28   project.) 
     28  doit être considéré.) 
    2929 </para> 
    3030 
    3131 <sect2> 
    32   <title>Distances sur Terre en se basant sur des cubes</title> 
     32  <title>Distances sur Terre à partir de cubes</title> 
    3333 
    3434  <para> 
    3535   Les données sont stockées dans des cubes qui sont des points (les coins 
    36    sont identiques) en utilisant trois coordonnées représentant la distance 
    37    x, y et z du centre de la Terre. Un domaine <type>earth</type> sur 
     36   sont identiques), les trois coordonnées représentant la distance 
     37   x, y et z au centre de la Terre. Un domaine <type>earth</type> sur 
    3838   <type>cube</type> est fourni. Il inclut des contraintes de vérification pour 
    39    que la valeur respecte ces restrictions et est raisonnablement proche de la 
     39   que la valeur respecte ces restrictions et reste raisonnablement proche de la 
    4040   surface réelle de la Terre. 
    4141  </para> 
    4242 
    4343  <para> 
    44    Le rayon de la Terre est obtenu à partir de la fonction 
    45    <function>earth()</function>. Il est donné en mètre mais, en modification 
    46    cette fonction, vous pouvez modifier le module pour qu'il utilise d'autres 
    47    unités, ou pour utiliser une valeur différente, mais plus appropriée, du 
    48    rayon. 
     44   Le rayon de la Terre, obtenu à partir de la fonction 
     45   <function>earth()</function>, est donné en mètres. Il est toutefois 
     46   possible de modifier le module pour changer l'unité, ou pour utiliser une 
     47   autre valeur de rayon. 
    4948  </para> 
    5049 
    5150  <para> 
    52    Ce paquet a des applications pour les bases de données en astronomie. Les 
    53    astronomes voudront certainement modifier <function>earth()</function> pour 
    54    qu'elle renvoie un rayon de <literal>180/pi()</literal> de façon à ce que 
     51   Ce paquet peut être appliqué aux bases de données d'astronomie. Les 
     52   astronomes peuvent modifier <function>earth()</function> pour 
     53   que le rayon renvoyé soit <literal>180/pi()</literal>, de sorte que  
    5554   les distances soient en degrés. 
    5655  </para> 
    5756 
    5857  <para> 
    59    Les fonctions sont fournies pour accepter latitude et longitude en entrée 
    60    et en sortie (en degrés) ainsi que pour calculer la distance entre deux 
    61    points et pour facilement spécifier une boîte globale utilisable pour les 
     58   Les fonctions acceptent latitude et longitude en entrée 
     59   et en sortie (en degrés), calculent la distance circulaire entre deux 
     60   points et permettent de préciser facilement une boîte utilisable par les 
    6261   recherches par index. 
    6362  </para> 
     
    6766  </para> 
    6867 
     68<!-- Qu'est-ce que secant ? --> 
    6969  <table id="earthdistance-cube-functions"> 
    70    <title>Fonctions earthdistance basées sur des cube</title> 
     70   <title>Fonctions earthdistance par cubes</title> 
    7171   <tgroup cols="3"> 
    7272    <thead> 
     
    8686      <entry><function>sec_to_gc(float8)</function></entry> 
    8787      <entry><type>float8</type></entry> 
    88       <entry>Convertit la distance en ligne directe (secant) entre deux 
    89        points sur la surface de la Terre en une distane en cercle entre 
    90        eux. 
     88      <entry>Convertit la distance en ligne droite (sécant) entre deux 
     89       points à la surface de la Terre en distane circulaire. 
    9190      </entry> 
    9291     </row> 
     
    9493      <entry><function>gc_to_sec(float8)</function></entry> 
    9594      <entry><type>float8</type></entry> 
    96       <entry>Convertit la distance en cercle entre deux points sur la surface 
    97        de la Terre en une distance en ligne droite (secant). 
     95      <entry>Convertit la distance circulaire entre deux points à la surface 
     96       de la Terre en une distance en ligne droite (sécant). 
    9897      </entry> 
    9998     </row> 
     
    101100      <entry><function>ll_to_earth(float8, float8)</function></entry> 
    102101      <entry><type>earth</type></entry> 
    103       <entry>Renvoie l'emplacement d'un point sur la surface de la Terre étant 
    104        donné sa latitude (argument 1) et sa longitude (argument 2) en degrés. 
     102      <entry>Renvoie l'emplacement d'un point à la surface de la Terre étant 
     103       données sa latitude (argument 1) et sa longitude (argument 2) en degrés. 
    105104      </entry> 
    106105     </row> 
     
    108107      <entry><function>latitude(earth)</function></entry> 
    109108      <entry><type>float8</type></entry> 
    110       <entry>Renvoie la latitude en degrés d'un point sur la surface de la 
     109      <entry>Renvoie la latitude en degrés d'un point à la surface de la 
    111110       Terre. 
    112111      </entry> 
     
    115114      <entry><function>longitude(earth)</function></entry> 
    116115      <entry><type>float8</type></entry> 
    117       <entry>Renvoie la longitude en degrés d'un point sur la surface de la 
     116      <entry>Renvoie la longitude en degrés d'un point à la surface de la 
    118117       Terre. 
    119118      </entry> 
     
    122121      <entry><function>earth_distance(earth, earth)</function></entry> 
    123122      <entry><type>float8</type></entry> 
    124       <entry>Renvoie la distance en cercle entre deux points sur la surface 
     123      <entry>Renvoie la distance circulaire entre deux points à la surface 
    125124       de la Terre. 
    126125      </entry> 
     
    129128      <entry><function>earth_box(earth, float8)</function></entry> 
    130129      <entry><type>cube</type></entry> 
    131       <entry>Renvoie une boîte convenable pour une recherche par index en 
    132        utilisant l'opérateur <literal>@&gt;</literal> du type cube pour les 
    133        points dans une distance cercle donnée d'un emplacement. Certains 
    134        points de cette boîte sont plus loin que la distance cercle spécifié
    135        en partant de l'emplacement. Donc, une deuxième vérification utilisant 
    136        <function>earth_distance</function> doit être inclus dans la requête. 
     130      <entry>Renvoie une boîte autorisant une recherche par index avec 
     131       l'opérateur <literal>@&gt;</literal> du type cube pour les 
     132       points situés au maximum à une distance circulaire donnée d'un 
     133       emplacement. Certains points de cette boîte sont plus éloignés qu
     134       la distance circulaire indiquée. Une deuxième vérification utilisant 
     135       <function>earth_distance</function> doit, donc, être incluse dans la requête. 
    137136      </entry> 
    138137     </row> 
     
    144143 
    145144 <sect2> 
    146   <title>Distances sur Terre basées sur des points</title> 
     145  <title>Distances sur Terre à partir de points</title> 
    147146 
    148147  <para> 
    149    La seconde partie du module se base sur la représentation des emplacements 
    150    sur Terre en tant que valeurs de type <type>point</type>, pour lesquelles 
    151    le premier composant est pris pour représenter la longitude en degrés, et 
    152    le second composant est pris pour représenter la latitude en degrés. Les 
    153    points sont pris en tant que (longitude, latitude) et non pas vice-versa 
    154    car la longitude est plus proche de l'idée intuitive de l'axe X et la 
    155    latitude celle de l'axe Y. 
     148   La seconde partie du module se fonde sur la représentation des emplacements 
     149   sur Terre comme valeurs de type <type>point</type>, pour lesquelles 
     150   le premier composant représente la longitude en degrés, et 
     151   le second la latitude en degrés. Les points ont la forme (longitude, 
     152   latitude) et non l'inverse, car intuitivement, la longitude se compare 
     153   à l'axe X, la latitude à l'axe Y. 
    156154  </para> 
    157155 
    158156  <para> 
    159    Un seul opérateur est fourni&nbsp;: 
     157   Un opérateur unique est fourni&nbsp;: 
    160158  </para> 
    161159 
    162160  <table id="earthdistance-point-operators"> 
    163    <title>Opérateurs earthdistance basés sur les points</title> 
     161   <title>Opérateurs earthdistance par points</title> 
    164162   <tgroup cols="3"> 
    165163    <thead> 
     
    172170    <tbody> 
    173171     <row> 
     172     <!-- statute miles ? miles terrestres ? --> 
    174173      <entry><type>point</type> <literal>&lt;@&gt;</literal> <type>point</type></entry> 
    175174      <entry><type>float8</type></entry> 
    176       <entry>Donne la distance en miles entre deux points sur la surface de 
     175      <entry>Donne la distance en miles entre deux points à la surface de 
    177176       la Terre. 
    178177      </entry> 
     
    183182 
    184183  <para> 
    185    Notez que contrairement à la partie basée sur <type>cube</type> dans ce 
    186    module, les unités ne sont pas modifiables ici&nbsp;: modifier la fonction 
    187    <function>earth()</function> n'affecte pas les résultats de cet opérateur. 
     184   Contrairement à la partie fondée sur <type>cube</type>, les unités 
     185   ne sont pas modifiables&nbsp;: une modification de la fonction 
     186   <function>earth()</function> n'affecte pas les résultats de l'opérateur. 
    188187  </para> 
    189188 
    190189  <para> 
    191    Un inconvénient de la représentation longitude/latitude est que vous avez 
    192    besoin de faire attention aux conditions particulières près des pôles et 
    193    près de +/- 180 degrés de longitude. La représentation basée sur les 
    194    <type>cube</type> évite ces discontinuités. 
     190   La représentation longitude/latitude a pour inconvénient d'obliger à tenir 
     191   compte des conditions particulières près des pôles et près des longitudes de 
     192   +/- 180 degrés. La représentation par <type>cube</type> évite ces 
     193   discontinuités. 
    195194  </para> 
    196195 
  • traduc/trunk/postgresql/ecpg.xml

    r973 r1103  
    44     par      $Author$ 
    55     révision $Revision$ --> 
    6 <!-- SAS : 20070516, PG824 --> 
    76 
    87<chapter id="ecpg"> 
     
    133132 
    134133   Si la cible de connexion est indiquée littéralement (c'est-à-dire non pas via une 
    135    variable de référence) et la valeur n'est pas mise entre guillemets, 
     134   variable de référence) et que la valeur n'est pas mise entre guillemets, 
    136135   les règles d'insensibilité à la casse du SQL standard sont appliquées. 
    137    Dans ce cas, il est possible, si cela s'avérait nécessaire, d'encadrer 
     136   Dans ce cas, il est possible, si cela s'avère nécessaire, d'encadrer 
    138137   séparément les paramètres individuels de guillemets doubles. 
    139138   En pratique, l'utilisation d'une chaîne littérale (entre guillemets 
     
    191190 
    192191  <para> 
    193    Voici quelques exemples d'instructions <command>CONNECT</command>&nbsp;: 
     192   Quelques exemples d'instructions <command>CONNECT</command>&nbsp;: 
    194193<programlisting>EXEC SQL CONNECT TO ma_base@sql.mondomaine.com; 
    195194 
     
    376375</programlisting> 
    377376   Cette option est particulièrement intéressante si un grand nombre 
    378    d'instructions doivent être exécutées à partir de la même connexion. Elle ne tient pas 
    379    compte des threads. 
     377   d'instructions doivent être exécutées à partir de la même connexion. Elle ne 
     378   gère pas les threads. 
    380379  </para> 
    381380 </sect1> 
     
    385384 
    386385  <para> 
    387    La <xref linkend="ecpg-commands"/> présentait l'exécution d'instructions 
     386   La <xref linkend="ecpg-commands"/> présente l'exécution d'instructions 
    388387   SQL à partir d'un programme SQL embarqué. Certaines de ces 
    389388   instructions n'utilisent que des valeurs fixes. Elles n'offrent pas la 
     
    405404 
    406405   <para> 
    407     Échanger des données entre le programme C et les instructions SQL est 
     406    L'échange de données entre le programme C et les instructions SQL est 
    408407    particulièrement simple en SQL embarqué. Plutôt que de laisser le programme 
    409408    copier les données dans l'instruction, ce qui implique un certain nombre de 
     
    420419 
    421420   <para> 
    422     Ce style d'insertions de variables C dans des instructions SQL fonctionne 
     421    Ce style d'insertion de variables C dans des instructions SQL fonctionne 
    423422    dans tous les cas où l'on attend une expression de valeur dans une instruction SQL. 
    424423   </para> 
     
    455454<programlisting>EXEC SQL int i = 4; 
    456455</programlisting> 
    457     Il peut y avoir autant de sections de déclarations dans un programme que 
    458     souhaité. 
     456    Le nombre de sections de déclarations dans un programme n'est pas limité. 
    459457   </para> 
    460458 
     
    482480    (<foreignphrase>struct</foreignphrase>) et pointeurs 
    483481    (<foreignphrase>pointer</foreignphrase>) peuvent aussi être utilisés comme 
    484     varibale hôte. Il existe également des types spéciaux de 
     482    variables hôtes. Il existe également des types spéciaux de 
    485483    variables hôtes qui n'existent qu'en ECPG. 
    486484   </para> 
     
    494492      <para> 
    495493       Une des utilisations les plus communes d'une déclaration de tableaux 
    496        est certainement l'allocation d'un tableau de caractères comme dans&nbsp;: 
     494       est certainement l'allocation d'un tableau de caractères&nbsp;: 
    497495<programlisting>EXEC SQL BEGIN DECLARE SECTION; 
    498496    char chaine[50]; 
     
    528526 
    529527     <varlistentry> 
    530       <term>Pointers</term> 
     528      <term>Pointeurs</term> 
    531529      <listitem> 
    532530      <para> 
     
    563561       <para> 
    564562        Le type spécial <type>VARCHAR</type> est converti en une 
    565         <type>struct</type> nommée pour chaque variable. Une déclaration telle 
    566         que&nbsp;: 
     563        <type>struct</type> nommée pour chaque variable. La déclaration&nbsp;: 
    567564<programlisting>VARCHAR var[180]; 
    568565</programlisting> 
     
    594591 
    595592   <para> 
    596     Voici un exemple&nbsp;: 
     593    Par exemple&nbsp;: 
    597594<programlisting>/* 
    598595 * Soit la table : 
     
    754751 
    755752  <para> 
    756    La bibliothèque pgtypes établie une correspondance entre les types 
     753   La bibliothèque pgtypes établit une correspondance entre les types 
    757754   <productname>PostgreSQL</productname> et les équivalents en C. Elle fournit 
    758755   aussi des fonctions permettant des calculs simples sur ces types en C, 
     
    778775   <title>Le type numeric</title> 
    779776   <para> 
    780     Le type numeric permet des calculs avec une précision arbitraire. Voir 
     777    Le type numeric permet des calculs de précision arbitraire. Voir 
    781778    <xref linkend="datatype-numeric"/> pour le type équivalent dans le serveur 
    782779    <productname>PostgreSQL</productname>. Du fait de la précision arbitraire,  
     
    796793     <listitem> 
    797794      <para> 
    798       réclame un pointeur vers une variable numeric nouvellement allouée. 
     795      réclame un pointeur vers une variable de type numeric nouvellement allouée. 
    799796<synopsis>numeric *PGTYPESnumeric_new(void); 
    800797</synopsis> 
     
    832829       ne supporte pas le stockage de l'adresse du premier caractère 
    833830       invalide dans <literal>*endptr</literal>.  
    834        <literal>endptr</literal> peut être initailisé à NULL en toute sécurité. 
     831       <literal>endptr</literal> peut être initialisé à NULL en toute sécurité. 
    835832      </para> 
    836833     </listitem> 
     
    10781075int PGTYPESnumeric_to_decimal(numeric *src, decimal *dst); 
    10791076</synopsis> 
    1080        La fonction convertit la valeur numérique de la variable pontée par 
     1077       La fonction convertit la valeur numérique de la variable pointée par 
    10811078       <literal>nv</literal> en une variable de type decimal pointée par 
    10821079       <literal>dst</literal>. 
    10831080       La fonction renvoie 0 en cas de succès et -1 en cas d'erreur, 
    1084        dépassement inclus. En cas de débodrdement, la variable globale 
     1081       dépassement inclus. En cas de débordement, la variable globale 
    10851082       <literal>errno</literal> est initialisée à 
    10861083       <literal>PGTYPES_NUM_OVERFLOW</literal>. 
     
    16291626            un pointeur sur une chaîne C de type char* (<literal>endptr</literal>). 
    16301627            Actuellement, ecpg analyse toujours la chaîne complète et ne 
    1631             supporte donc pas le stockage de l'adresse du premier caractère invalide 
     1628            permet pas de stocker l'adresse du premier caractère invalide 
    16321629            dans <literal>*endptr</literal>. <literal>endptr</literal> peut 
    16331630            être initialisé à NULL en toute sécurité. 
     
    16401637        sur cette valeur. 
    16411638       </para> 
    1642        <!-- SAS : to parse ne peut-il être traduit par le néologisme compréhensible 
    1643        parser ? Dans le cas présent analyser me semble trop fort, puisque 
    1644        l'idée est qu'ecpg peut parcourir la chaîne sans faire aucun traitement 
    1645        sur ce qui est lu. --> 
    16461639       <para> 
    16471640        En général, la chaîne saisie peut contenir toute combinaison de 
    16481641        spécification autorisée de date, d'espace et de spécification 
    16491642        autorisée d'heure. Les fuseaux horaires ne sont pas supportés par ecpg. 
    1650             Il peut les analyser mais n'applique aucun calcul au contraire de serveur 
     1643            Il peut les analyser mais n'applique aucun calcul au contraire du serveur 
    16511644            <productname>PostgreSQL</productname> par exemple. Les fuseaux horaires 
    16521645            sont ignorés silencieusement. 
     
    18411834          <para> 
    18421835           <literal>%G</literal> - est remplacé par une année comme nombre 
    1843            déciaml avec le siècle. Il s'agit de l'année qui contient la plus 
     1836           décimal avec le siècle. Il s'agit de l'année qui contient la plus 
    18441837           grande partie de la semaine (lundi étant le premier jour de la 
    18451838           semaine)&nbsp;; 
     
    19151908          <para> 
    19161909           <literal>%p</literal> - remplacé par la représentation nationale de  
    1917            "ante meridiem" ou "post meridiem" suivant le cas&nbsp;; 
     1910           « ante meridiem » ou « post meridiem » suivant le cas&nbsp;; 
    19181911          </para> 
    19191912         </listitem> 
     
    20792072int PGTYPEStimestamp_sub(timestamp *ts1, timestamp *ts2, interval *iv); 
    20802073</synopsis> 
    2081         La fonction soustraie la variable timestamp pointée par 
     2074        La fonction soustrait la variable timestamp pointée par 
    20822075        <literal>ts2</literal> de la variable timestamp pointée par 
    20832076        <literal>ts1</literal> et stocke le résultat dans la variable de type interval 
     
    21072100       <para> 
    21082101        Si le masque de formatage <literal>fmt</literal> est NULL, la fonction 
    2109         utiliser la masque de formatage par défaut qui est <literal>%Y-%m-%d 
     2102        utilise la masque de formatage par défaut qui est <literal>%Y-%m-%d 
    21102103        %H:%M:%S</literal>. 
    21112104       </para> 
     
    22442237        <literal>intvlsrc</literal> dans la variable pointée par 
    22452238        <literal>intvldest</literal>. La 
    2246         mémoire de la variable de destination doit être allouer avant 
     2239        mémoire de la variable de destination doit être allouée avant 
    22472240        d'appeler la fonction. 
    22482241       </para> 
     
    24482441 </sect1> 
    24492442 
    2450 <!-- ICI --> 
    24512443 <sect1 id="ecpg-informix-compat"> 
    24522444  <title>Mode de compatibilité <productname>Informix</productname></title> 
     
    24662458  </para> 
    24672459  <para> 
    2468    Il existe deux modes de compatibilité INFORMIX et INFORMIX_SE. 
    2469   </para> 
    2470   <para> 
    2471    Lors de l'édition de liens de programmes qui utilisent ce mode de compatibilité, 
     2460   Il existe deux modes de compatibilité&nbsp;: INFORMIX et INFORMIX_SE. 
     2461  </para> 
     2462  <para> 
     2463   Lors de l'édition de liens pour des programmes qui utilisent ce mode de compatibilité, 
    24722464   il est nécessaire de lier les programmes avec <literal>libcompat</literal>, 
    24732465   fournie avec ecpg. 
     
    24852477   programme C hôte&nbsp;; la plupart des 
    24862478   fonctions supplémentaires du mode de compatibilité 
    2487    <productname>Informix</productname> permet d'opérer sur ces types. 
     2479   <productname>Informix</productname> permettent d'opérer sur ces types. 
    24882480   L'étendue de la compatibilité est toutefois limitée. L'idée n'est pas de 
    24892481   mimer le comportement d'<productname>Informix</productname>&nbsp;; 
     
    25312523int decadd(decimal *arg1, decimal *arg2, decimal *sum); 
    25322524</synopsis> 
    2533 <!-- SAS : une opérande, non ? --> 
    2534         La fonction reçoit un pointeur vers la première opérande de type decimal 
    2535         (<literal>arg1</literal>), un pointeur vers la seconde opérande de type 
     2525<!-- SAS : un opérande --> 
     2526        La fonction reçoit un pointeur vers le premier opérande de type decimal 
     2527        (<literal>arg1</literal>), un pointeur vers le second opérande de type 
    25362528        decimal (<literal>arg2</literal>) et un pointeur vers une valeur de type 
    25372529        decimal destinée à contenir la somme (<literal>sum</literal>). En cas de 
     
    26012593      <listitem> 
    26022594       <para> 
    2603         convertit une valeur de sa représentation ASCII en une valeur de type 
     2595        convertit une valeur de sa représentation ASCII en valeur de type 
    26042596        decimal. 
    26052597<synopsis> 
     
    27232715      <listitem> 
    27242716       <para> 
    2725         effectue la multiplication de deux variables de type values. 
     2717        effectue la multiplication de deux valeurs décimales. 
    27262718<synopsis> 
    27272719int decmul(decimal *n1, decimal *n2, decimal *result); 
     
    27792771        (<literal>np</literal>) qu'elle convertit dans sa représentation textuelle. 
    27802772        <literal>cp</literal> est le tampon de stockage du résultat de 
    2781         l'opération. Le paramètre <literal>right</literal> indique le nombres 
     2773        l'opération. Le paramètre <literal>right</literal> indique le nombre 
    27822774        de chiffres à inclure à droite du point décimal dans le résultat. 
    27832775        Le résultat est arrondi à ce nombre de chiffres décimaux. Configurer 
     
    28652857        L'implantation d'ecpg diffère de celle 
    28662858        d'<productname>Informix</productname>. <productname>Informix</productname> 
    2867         limite un entier à la plage -2.147.483.647&nbsp;..&nbsp;2.147.483.647 
     2859        limite un entier long à la plage -2.147.483.647&nbsp;..&nbsp;2.147.483.647 
    28682860        alors que les limites de l'implantation d'ecpg dépendent de 
    28692861        l'architecture (<literal>-LONG_MAX .. LONG_MAX</literal>). 
     
    28832875        (<literal>d</literal>) et le second est un pointeur vers la chaîne cible. 
    28842876        Le format de sortie est toujours <literal>yyyy-mm-dd</literal>. Il est donc 
    2885         nécessaire d'allouer au minimum 11 octets (ce qui inclue le 
     2877        nécessaire d'allouer au minimum 11 octets (ce qui inclut le 
    28862878        terminateur NUL) pour la chaîne. 
    28872879       </para> 
     
    28942886        d'<productname>Informix</productname>. Dans <productname>Informix</productname>, 
    28952887        le format peut être modifié en configurant les variables 
    2896         d'environnement. EN revanche, en ecpg, le format de sortie ne peut pas 
     2888        d'environnement. EN revanche, avec ecpg, le format de sortie ne peut pas 
    28972889        être modifié. 
    28982890       </para> 
     
    32203212int dtsub(timestamp *ts1, timestamp *ts2, interval *iv); 
    32213213</synopsis> 
    3222         La fonction soustraie la variable timestamp pointée par 
     3214        La fonction soustrait la variable timestamp pointée par 
    32233215        <literal>ts2</literal> à la variable timestamp pointée par 
    32243216        <literal>ts1</literal> et stocke le résultat dans la variable 
     
    33293321         <listitem> 
    33303322          <para> 
    3331            <literal>&amp;</literal> (esperluette ou et commercial) - remplace 
    3332            une position autrement vide par un zéro&nbsp;; 
     3323           <literal>&amp;</literal> (esperluette, perluette ou « et commercial 
     3324           ») - remplace une position autrement vide par un zéro&nbsp;; 
    33333325          </para> 
    33343326         </listitem> 
     
    33943386      <listitem> 
    33953387       <para> 
    3396         convertit une chaîne en majuscule
     3388        convertit une chaîne en majuscules
    33973389<synopsis> 
    33983390void rupshift(char *str); 
     
    38023794 
    38033795  <para> 
    3804    Avant d'utiliser une zone de descripteur SQL, il est nécessaire d'en 
    3805    allouer une&nbsp;: 
     3796   Avant d'utiliser une zone de descripteur SQL, il est nécessaire de 
     3797   l'allouer&nbsp;: 
    38063798<programlisting>EXEC SQL ALLOCATE DESCRIPTOR <replaceable>identifiant</replaceable>; 
    38073799</programlisting> 
     
    38163808 
    38173809  <para> 
    3818    Pour utiliser la zone d'un descripteur, il faut le spécifier comme cible de 
     3810   Pour utiliser une zone de descripteur, il suffit de le préciser comme cible de 
    38193811   stockage dans une clause <literal>INTO</literal> à la place de la liste des 
    38203812   variables hôtes&nbsp;: 
     
    41314123   <para> 
    41324124    L'instruction <literal>EXEC SQL WHENEVER</literal> est une directive du 
    4133     préprocesseur SQL, pas une instruction C. Les actions ien cas d'erreur 
    4134     ou d'avertissement qu'elle définit s'appliquent à toutes les instructions 
     4125    préprocesseur SQL, pas une instruction C. Les actions sur erreur 
     4126    ou avertissement qu'elle définit s'appliquent à toutes les instructions 
    41354127    SQL embarquées qui apparaissent avant l'endroit où le gestionnaire est défini, 
    41364128    à moins qu'une action différente n'ait été définie pour la même condition 
     
    41404132    comportement désiré&nbsp;: 
    41414133<programlisting>/* 
    4142  * MAUVAIS 
     4134 * FAUX 
    41434135 */ 
    41444136int main(int argc, char *argv[]) 
     
    41554147 
    41564148<programlisting>/* 
    4157  * MAUVAIS 
     4149 * FAUX 
    41584150 */ 
    41594151int main(int argc, char *argv[]) 
     
    42874279    <literal>SQLSTATE</literal> est un tableau de cinq caractères. Ces cinq 
    42884280    caractères contiennent des chiffres ou des lettres en majuscules 
    4289     représentant les codes de différentes conditions d'erreurs ou 
    4290     d'avertissements. <literal>SQLSTATE</literal> dispose d'un schéma 
     4281    représentant les codes de différentes conditions d'erreur ou 
     4282    d'avertissement. <literal>SQLSTATE</literal> dispose d'un schéma 
    42914283    hiérarchique&nbsp;: les deux premiers caractères indiquent la classe 
    42924284    générale de la condition, les trois derniers caractères indiquent une 
     
    43024294 
    43034295   <para> 
    4304     <literal>SQLCODE</literal>, schéma obsolète de codes d'erreurs, est un 
     4296    <literal>SQLCODE</literal>, schéma obsolète de codes d'erreur, est un 
    43054297    simple entier. Une valeur 0 indique un succès, une valeur positive 
    43064298    indique un succès avec des informations supplémentaires, une valeur négative 
     
    43134305    <literal>SQLCODE</literal> spécifiques pour sa propre utilisation. ces 
    43144306    valeurs sont listées ci-dessous avec leurs valeurs numériques et leurs noms symboliques. 
    4315     Elles ne sont pas portables vers d'autres implémentations SQL. Pour 
     4307    Elles ne sont pas portables vers d'autres implantations SQL. Pour 
    43164308    simplifier le portage d'applications vers la schéma <literal>SQLSTATE</literal>, 
    43174309    le code <literal>SQLSTATE</literal> correspondant est également affiché. 
     
    43724364      <para> 
    43734365       une requête retourne plusieurs lignes alors que 
    4374        l'instruction n'est préparée à ne stocker qu'une seule ligne de résultat (par 
     4366       l'instruction est préparée à ne stocker qu'une seule ligne de résultat (par 
    43754367       exemple, parce que les variables indiquées ne sont pas des tableaux) 
    43764368       (SQLSTATE 21000)&nbsp;; 
     
    44354427       l'instruction envoyée au serveur <productname>PostgreSQL</productname> 
    44364428       est vide (ceci ne peut normalement pas survenir dans un programme SQL 
    4437        embarqué, cela peut donc indiquer une erreur interne) (SQLSTATE 
     4429       embarqué et peut donc indiquer une erreur interne) (SQLSTATE 
    44384430       YE002)&nbsp;; 
    44394431      </para> 
     
    45244516     <listitem> 
    45254517      <para> 
    4526        un élément invalide du descripteur est demandé (ceci est une erreur 
     4518       un élément invalide du descripteur est demandé (erreur 
    45274519       interne) (SQLSTATE YE002)&nbsp;; 
    45284520      </para> 
     
    45874579      <para> 
    45884580       il s'agit d'une condition sans gravité qui indique que la dernière commande 
    4589        n'a récupéré ou traité aucune ligne, ou que la fin du curseur est atteinte 
     4581       n'a récupéré ni traité aucune ligne, ou que la fin du curseur est atteinte 
    45904582       (SQLSTATE 02000). 
    45914583      </para> 
     
    47554747  <para> 
    47564748   Après avoir vu comment former des programmes C incluant du SQL embarqué, il 
    4757    est tout aussi intéressant de savoir comment les compiler. Avant d'être compilé, 
     4749   est tout aussi intéressant de savoir comment les compiler. 
     4750  </para> 
     4751  <para> 
     4752   Avant d'être compilé, 
    47584753   le fichier est passé au travers du préprocesseur <acronym>C</acronym> pour le 
    47594754   <acronym>SQL</acronym> embarqué. Ce préprocesseur, appelé aussi 
     
    49024897 
    49034898   <para> 
    4904     La substitution de variable intervient quand un symbole commence avec un 
     4899    La substitution de variable intervient quand un symbole débute par un 
    49054900    caractère deux-points (<literal>:</literal>). La variable possédant ce nom 
    49064901    est recherchée parmi toutes les variables précédemment déclarées dans une 
  • traduc/trunk/postgresql/errcodes.xml

    r973 r1103  
    44     par      $Author$ 
    55     révision $Revision$ --> 
    6 <!-- SAS : 20070328, PG 8.2.3 --> 
    76 
    87<appendix id="errcodes-appendix"> 
     
    1716  Tous les messages émis par le serveur <productname>PostgreSQL</productname> 
    1817  se voient affectés des codes d'erreur sur cinq caractères. Ces codes suivent les 
    19   conventions du standard SQL pour les codes <quote>SQLSTATE</quote>. Il est 
    20   préférable que les applications qui souhaitent connaître la condition d'erreur 
    21   survenue testent le code d'erreur plutôt que d'effectuer une recherche dans 
     18  conventions du standard SQL pour les codes <quote>SQLSTATE</quote>. 
     19 </para>  
     20 <para> 
     21  Les applications qui souhaitent connaître la condition d'erreur 
     22  survenue peuvent tester le code d'erreur plutôt que récupérer 
    2223  le message d'erreur textuel. Les codes d'erreurs sont moins sujets à 
    2324  changement au fil des versions de <productname>PostgreSQL</productname> et ne 
    24   sont pas dépendants de la localisation des messages d'erreur. 
     25  dépendent pas de la localisation des messages d'erreur. 
    2526  Seuls certains codes d'erreur produits par 
    2627  <productname>PostgreSQL</productname> sont définis par le standard 
     
    8283  <tbody> 
    8384 
    84 <row> 
    85 <entry spanname="span13"><emphasis role="bold">Class 00 &mdash; Successful Completion</emphasis></entry> 
     85<!-- SAS 20080708 : Pourquoi le texte n'est-il pas traduit ? --> 
     86<row> 
     87<entry spanname="span13"><emphasis role="bold">Class 00 &mdash; Succès de 
     88l'opération</emphasis></entry> 
    8689</row> 
    8790 
     
    9497 
    9598<row> 
    96 <entry spanname="span13"><emphasis role="bold">Class 01 &mdash; Warning</emphasis></entry> 
     99<entry spanname="span13"><emphasis role="bold">Class 01 &mdash; Avertissement</emphasis></entry> 
    97100</row> 
    98101 
     
    147150 
    148151<row> 
    149 <entry spanname="span13"><emphasis role="bold">Class 02 &mdash; No Data (this is also a warning class per the SQL standard)</emphasis></entry> 
     152<entry spanname="span13"><emphasis role="bold">Class 02 &mdash; Pas de données 
     153(également une classe d'averissement selon le standard SQL)</emphasis></entry> 
    150154</row> 
    151155 
     
    164168 
    165169<row> 
    166 <entry spanname="span13"><emphasis role="bold">Class 03 &mdash; SQL Statement Not Yet Complete</emphasis></entry> 
     170<entry spanname="span13"><emphasis role="bold">Class 03 &mdash; Instruction SQL 
     171pas encore terminée</emphasis></entry> 
    167172</row> 
    168173 
     
    175180 
    176181<row> 
    177 <entry spanname="span13"><emphasis role="bold">Class 08 &mdash; Connection Exception</emphasis></entry> 
     182<entry spanname="span13"><emphasis role="bold">Class 08 &mdash; Problème de 
     183connexion</emphasis></entry> 
    178184</row> 
    179185 
     
    222228 
    223229<row> 
    224 <entry spanname="span13"><emphasis role="bold">Class 09 &mdash; Triggered Action Exception</emphasis></entry> 
     230<entry spanname="span13"><emphasis role="bold">Class 09 &mdash; Problème 
     231d'action déclenchée</emphasis></entry> 
    225232</row> 
    226233 
     
    233240 
    234241<row> 
    235 <entry spanname="span13"><emphasis role="bold">Class 0A &mdash; Feature Not Supported</emphasis></entry> 
     242<entry spanname="span13"><emphasis role="bold">Class 0A &mdash; Fonctionnalité 
     243non supportée</emphasis></entry> 
    236244</row> 
    237245 
     
    244252 
    245253<row> 
    246 <entry spanname="span13"><emphasis role="bold">Class 0B &mdash; Invalid Transaction Initiation</emphasis></entry> 
     254<entry spanname="span13"><emphasis role="bold">Class 0B &mdash; Initialisation 
     255de transaction invalide</emphasis></entry> 
    247256</row> 
    248257 
     
    255264 
    256265<row> 
    257 <entry spanname="span13"><emphasis role="bold">Class 0F &mdash; Locator Exception</emphasis></entry> 
     266<entry spanname="span13"><emphasis role="bold">Classe 0F &mdash; Problème de 
     267pointeur (<foreignphrase>Locator</foreignphrase>)</emphasis></entry> 
    258268</row> 
    259269 
     
    272282 
    273283<row> 
    274 <entry spanname="span13"><emphasis role="bold">Class 0L &mdash; Invalid Grantor</emphasis></entry> 
     284<entry spanname="span13"><emphasis role="bold">Classe 0L &mdash; Granteur 
     285invalide</emphasis></entry> 
    275286</row> 
    276287 
     
    289300 
    290301<row> 
    291 <entry spanname="span13"><emphasis role="bold">Class 0P &mdash; Invalid Role Specification</emphasis></entry> 
     302<entry spanname="span13"><emphasis role="bold">Classe 0P &mdash; Spécification 
     303de rôle invalide</emphasis></entry> 
    292304</row> 
    293305 
     
    300312 
    301313<row> 
    302 <entry spanname="span13"><emphasis role="bold">Class 21 &mdash; Cardinality Violation</emphasis></entry> 
     314<entry spanname="span13"><emphasis role="bold">Class 21 &mdash; Violation de 
     315cardinalité</emphasis></entry> 
    303316</row> 
    304317 
     
    311324 
    312325<row> 
    313 <entry spanname="span13"><emphasis role="bold">Class 22 &mdash; Data Exception</emphasis></entry> 
     326<entry spanname="span13"><emphasis role="bold">Class 22 &mdash; Problème de 
     327données</emphasis></entry> 
    314328</row> 
    315329 
     
    580594 
    581595<row> 
    582 <entry spanname="span13"><emphasis role="bold">Class 23 &mdash; Integrity Constraint Violation</emphasis></entry> 
     596<entry spanname="span13"><emphasis role="bold">Class 23 &mdash; Violation de 
     597contrainte d'intégrité</emphasis></entry> 
    583598</row> 
    584599 
     
    621636 
    622637<row> 
    623 <entry spanname="span13"><emphasis role="bold">Class 24 &mdash; Invalid Cursor State</emphasis></entry> 
     638<entry spanname="span13"><emphasis role="bold">Classe 24 &mdash; État de 
     639curseur invalide</emphasis></entry> 
    624640</row> 
    625641 
     
    632648 
    633649<row> 
    634 <entry spanname="span13"><emphasis role="bold">Class 25 &mdash; Invalid Transaction State</emphasis></entry> 
     650<entry spanname="span13"><emphasis role="bold">Class 25 &mdash; État de 
     651transaction invalide</emphasis></entry> 
    635652</row> 
    636653 
     
    703720 
    704721<row> 
    705 <entry spanname="span13"><emphasis role="bold">Class 26 &mdash; Invalid SQL Statement Name</emphasis></entry> 
     722<entry spanname="span13"><emphasis role="bold">Classe 26 &mdash; Nom 
     723d'instruction SQL invalide</emphasis></entry> 
    706724</row> 
    707725 
     
    714732 
    715733<row> 
    716 <entry spanname="span13"><emphasis role="bold">Class 27 &mdash; Triggered Data Change Violation</emphasis></entry> 
     734<entry spanname="span13"><emphasis role="bold">Classe 27 &mdash; Violation de 
     735modification de donnée déclenchée</emphasis></entry> 
    717736</row> 
    718737 
     
    725744 
    726745<row> 
    727 <entry spanname="span13"><emphasis role="bold">Class 28 &mdash; Invalid Authorization Specification</emphasis></entry> 
     746<entry spanname="span13"><emphasis role="bold">Classe 28 &mdash; Spécification 
     747d'autorisation invalide</emphasis></entry> 
    728748</row> 
    729749 
     
    736756 
    737757<row> 
    738 <entry spanname="span13"><emphasis role="bold">Class 2B &mdash; Dependent Privilege Descriptors Still Exist</emphasis></entry> 
     758<entry spanname="span13"><emphasis role="bold">Classe 2B &mdash; Descripteurs de 
     759privilège dépendant toujours existant</emphasis></entry> 
    739760</row> 
    740761 
     
    753774 
    754775<row> 
    755 <entry spanname="span13"><emphasis role="bold">Class 2D &mdash; Invalid Transaction Termination</emphasis></entry> 
     776<entry spanname="span13"><emphasis role="bold">Classe 2D &mdash; Fin de 
     777transaction invalide</emphasis></entry> 
    756778</row> 
    757779 
     
    764786 
    765787<row> 
    766 <entry spanname="span13"><emphasis role="bold">Class 2F &mdash; SQL Routine Exception</emphasis></entry> 
     788<entry spanname="span13"><emphasis role="bold">Classe 2F &mdash; Exception dans 
     789une routine SQL</emphasis></entry> 
    767790</row> 
    768791 
     
    799822 
    800823<row> 
    801 <entry spanname="span13"><emphasis role="bold">Class 34 &mdash; Invalid Cursor Name</emphasis></entry> 
     824<entry spanname="span13"><emphasis role="bold">Classe 34 &mdash; Nom de curseur 
     825invalide</emphasis></entry> 
    802826</row> 
    803827 
     
    810834 
    811835<row> 
    812 <entry spanname="span13"><emphasis role="bold">Class 38 &mdash; External Routine Exception</emphasis></entry> 
     836<entry spanname="span13"><emphasis role="bold">Classe 38 &mdash; Exception de 
     837routine externe</emphasis></entry> 
    813838</row> 
    814839 
     
    845870 
    846871<row>