Difference between revisions of "Zeos tutorial/fr"

From Free Pascal wiki
Jump to navigationJump to search
m (Fixed syntax highlighting)
 
(23 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
{{Zeos tutorial}}
 
{{Zeos tutorial}}
 +
{{Infobox databases/fr}}
  
== Avant-propos ==
+
= Avant-propos =
  
Ce tutoriel concerne le téléchargement, l'installation et l'utilisation de  [http://zeos.firmos.at/portal.php Zeoslib] avec [[Glossary/fr#Lazarus|Lazarus]] et [[Glossary/fr#FreePascal|FPC]].
+
Ce tutoriel concerne le téléchargement, l'installation et l'utilisation de  [http://zeoslib.sourceforge.net/ Zeoslib] avec [[Glossary/fr#Lazarus|Lazarus]] et [[Glossary/fr#FreePascal|FPC]]. Cette traduction est partielle. Elle ne prend pas en compte ce qui est trop vieux (versions anciennes des logiciels).
 
<br>
 
<br>
 
<br>
 
<br>
'''<font color=navy>Les développeurs de  Zeos mettent à disposition un forum. Pour plus d'informations sur ZeosLib, pour poser (ou répondre à) des questions sur l'utilisation de Zeos et pour des rapports de bugs, veuillez vous rendre sur [http://zeos.firmos.at/index.php Forum sur ZeosLib].</font>'''
+
'''<font color=navy>Les développeurs de  Zeos mettent à disposition un forum. Pour plus d'informations sur ZeosLib, pour poser (ou répondre à) des questions sur l'utilisation de Zeos et pour des rapports de bugs, veuillez vous rendre sur [http://zeoslib.sourceforge.net/ le forum ZeosLib].</font>'''
  
== Télécharger Zeos ==
+
= Téléchargement de Zeos =
  
Zeos a été porté sur [[Glossary#Lazarus|Lazarus]]. Il n'y a pas de distribution officielle mais vous pouvez aisément le télécharger via SVN en suivant les étapes suivantes :
+
Zeos a été porté sur [[Glossary/fr#Lazarus|Lazarus]]. Il n'y a pas de distribution officielle mais vous pouvez aisément le télécharger via SVN en suivant les étapes suivantes :
 +
 
 +
== SVN ==
  
 
=== Windows ===
 
=== Windows ===
  
* get a SVN client [http://tortoisesvn.tigris.org TortoiseSVN] and install
+
* Installez un client SVN [http://tortoisesvn.tigris.org TortoiseSVN]
* see [http://tortoisesvn.net/docs/release/TortoiseSVN_en/help-onepage.html#tsvn-dug-general Getting Started with TortoiseSVN]
+
* La documentation : [http://tortoisesvn.net/docs/release/TortoiseSVN_fr/help-onepage.html#tsvn-dug-general Getting Started with TortoiseSVN]
* do Checkout from Windows Explorer: svn://firmos.at/zeos
+
* Téléchargez le code : http://svn.code.sf.net/p/zeoslib/code-0/trunk
 +
(Tortoise SVN est une extension shell de l'Explorateur Windows : clic droit sur le dossier destination -> SVN Checkout dans le menu shell, adresse du dépôt dans "URL Repository").
  
 
=== Linux/BSD ===
 
=== Linux/BSD ===
  
* get a SVN client (esvn, kdesvn, etc.)
+
* installez un client SVN quelconque (svn, esvn, kdesvn, etc.)
* create zeosdbo directory, go in that directory and do
+
* créez un répertoire zeosdbo, allez dans ce répertoire et faites un
* svn checkout svn://firmos.at/zeos
+
* svn checkout http://svn.code.sf.net/p/zeoslib/code-0/trunk
 
 
== Installing the components ==
 
 
 
This is a tricky part so you should have a little patience and read this part carefully.
 
  
* Make sure you have the latest [http://www.de.freepascal.org/lazarus/ Lazarus snapshot] and the at least FPC 2.0.3 not older than 6th March 2006.
+
==ZIP==
 +
Vous pouvez télécharger la dernière version en fichier ZIP depuis sourceforge.net :
 +
* [http://sourceforge.net/projects/zeoslib/ http://sourceforge.net/projects/zeoslib/]
  
* Start one instance of Lazarus.
+
= Installation des composants =
 +
Nous supposons que vous avez Lazarus >= 1.0.2 (et donc FPC >= 2.6.0)
 +
C'est une partie astucieuse, donc vous devrez avoir un peu de patience et lire ceci attentivement cette partie.
  
# Use '''Components/Open Package File(.lpk)''' from the main menu.
+
* Démarrez Lazarus.
# Go to '''zeosdbo_rework\packages\lazarus\''' and open '''zcomponent.lpk'''
+
# Allez dans '''Paquet/Ouvrir un fichier paquet(.lpk)''' dans le menu principal.
# Press '''[Compile]''' only if you don't want to install the components into the IDE
+
# Allez dans  '''<votre répertoire zeosdbo>/trunk/packages/lazarus/''' et ouvrez '''zcomponent.lpk'''
# Press '''[Install]'''
+
# Cliquez sur '''[Compiler]''' si vous ne voulez pas installer les composants dans l'IDE
# You are asked if you want to recompile Lazarus.  
+
# Cliquez sur '''[Installer]'''
* Answer '''[Yes]''' this time.
+
# On va vous demander si vous voulez reconstruire Lazarus.  
* Wait until compilation ends, Lazarus should restart itself after that.
+
* Répondez '''[Oui]'''.
* If all is ok you should now be able to see the '''[Zeos Access]''' tab in the Component Palette.
+
* Attendez un moment. Si tout va bien, Lazarus devrait redémarrer.
 +
* Maintenant, vous devriez voir l'onglet '''[Zeos Access]''' dans la palette de composants.
  
If you receive the error "Cannot find unit ZClasses" or something similar, then you need to carefully check the case of the filenames in your Zeos source distribution.
+
[[image:Zeos_Components.png]]
* Even if the cases match exactly, the autogenerated package source file can generate the wrong case name in the uses clause (Lazarus 0.9.18), i.e.:
 
  
 
+
Si vous obtenez une erreur "Cannot find unit ZClasses" ou quelque chose de semblable, vous devez alors vérifier précisément la casse des noms ds fichier dans les sources de votre distribution Zeos.
  { This file was automatically created by Lazarus. Do not edit!
+
* Même si la casse correspond exactement, le fichier source du paquet auto généré peut générer la mauvaise casse de nom dans la clause Uses (Lazarus 0.9.18), i.e.:
    This source is only used to compile and install the package.
 
  }
 
  unit Zcore;
 
  interface
 
  uses
 
    Zclasses, Zcollections, Zcompatibility, Zexprparser, Zexprtoken, Zexpression,
 
    Zfunctions, Zmatchpattern, Zmessages, Zsysutils, Ztokenizer, Zvariables,
 
    Zvariant;
 
  implementation
 
  end.          
 
  
 +
<syntaxhighlight lang=pascal>
 +
{ This file was automatically created by Lazarus. Do not edit!
 +
  This source is only used to compile and install the package.
 +
}
 +
unit Zcore;
 +
interface
 +
uses
 +
  Zclasses, Zcollections, Zcompatibility, Zexprparser, Zexprtoken, Zexpression,
 +
  Zfunctions, Zmatchpattern, Zmessages, Zsysutils, Ztokenizer, Zvariables,
 +
  Zvariant;
 +
implementation
 +
end.
 +
</syntaxhighlight>
  
* Notice that Lazarus has named the unit ZClasses Zclasses, resulting in a naming conflict. Presumably this is a bug in Lazarus, not the Zeos packages. One way around this is to rename all the zeos source files to lowercase. Trawl through each subdirectory under src/ and execute this command in a bash window:
+
* Remarquez que Lazarus a nommé ZClasses Zclasses, ce qui débouche sur un conflit de nom. On peut supposer que c'est un bug à Lazare, non pas du paquet Zeos. Une façon de contourner consiste à renommer tous les fichiers source de Zeos en minuscules. Allez à la pêche dans chaque sous-répertoire sous src/ et exécutez cette commande dans une fenêtre bash:
  
 
   rename -v 'y/A-Z/a-z/' *
 
   rename -v 'y/A-Z/a-z/' *
  
* Then, in Lazarus, reopen the package (.lpk) and fix the filename cases by clicking on "More..."/"Fix Files Case"
+
* Ensuite, dans Lazarus, rouvrez le paquet (.lpk) et corriger la casse des noms de fichier en cliquant sur "More..."/"Fix Files Case"
* The package should compile now.
+
* Le paquet devrait compiler maintenant.
 
 
== Comments ==
 
 
 
Currently Zeos CVS for Lazarus has broken packages.
 
Some comments from IgD:
 
 
 
Using a fresh install of Laz 0.9.12 (latest stable version) I was able to install ZeosLib dated 13 Oct 05. First fix the following bugs in ZeosLib:
 
 
 
* 1. Change ZplainPostgreSql81.pas to ZPlainPostgresSql8x.pas in zplain.lpk
 
 
<Item22>
 
  <Filename Value="../../src/plain/ZPlainPostgreSql81.pas"/>
 
  <UnitName Value="ZPlainPostgreSql8x"/>
 
</Item22>
 
 
 
 
* 2. Fix the following typos in zdbc.lpk:
 
 
 
a. Remove extra "/" from "build/" (remove the one that is inside the quotes)
 
 
 
<SearchPaths>
 
  <OtherUnitFiles Value="../../src/dbc/"/>
 
  <UnitOutputDirectory Value="build/"/>
 
</SearchPaths>
 
 
b. Add missing quote to unitname value
 
 
 
<Item43>
 
  <Filename Value="../../src/dbc/ZDbcASA.pas"/>
 
  <UnitName Value="ZDbcASA/>
 
</Item43>
 
 
 
Now, here are the installation instructions:
 
 
 
Before Lazarus 0.9.13 you must open each of the zeos packages via Components/Open Package File in the following order:
 
 
 
# zcore.lpk
 
# zparsesql.lpk
 
# zplain.lpk
 
# zdbc.lpk
 
 
 
Then finally open zcomponent.lpk and compile and install this package.
 
0.9.13 can simply open zcomponent.lpk. The IDE will open the rest automatically.
 
 
 
Note: The first four packages only need to be compiled and cannot be installed.
 
 
 
--[[User:Forest|Forest]] 17:41, 2 Nov 2005 (CET)
 
 
 
* 3. If you compile and install with sucessfull Zeos, but Lazarus, after rebuilded, start with:
 
[[Image:Zeoserror.gif]]
 
 
 
Then you can do:
 
 
 
In Zeos.Inc file replace, in section "// Settings for Debug mode":
 
{$R-}
 
to
 
{$R+}
 
 
 
--[[User:Junior|Junior]] 19:48, 15 Apr 2006 (GMT)
 
  
== Make your first Zeos application ==
+
= Créez votre première application Zeos =
  
* Drop a '''ZConnection'''.
+
* Ajoutez une '''ZConnection'''.
** Set your User, Password, Host, Port and Protocol (and any other params if needed).
+
** Remplissez les champs User, Password, Host, Port et Protocol (ainsi que les autres paramètres nécessaires).
** Set Connected to True.
+
** Positionnez Connected à True.
  
* Drop a '''ZQuery''' (<font color=red>do not mistake with ZReadOnlyQuery</font>).
+
* Ajoutez une '''ZQuery''' (<font color=red>ne confondez pas avec ZReadOnlyQuery</font>).
** Set the Connection to your active ZConnection.
+
** Faites pointer Connection vers votre ZConnection active.
** Set the Sql property to something like '''SELECT * FROM MyTable'''
+
** Mettez dans les propriétés de Sql quelque chose comme '''SELECT * FROM MyTable'''
** Set Active to True.
+
** Positionnez Active à True.
  
* Drop a '''DataSource''' from the '''[Data Access]''' tab.
+
* Ajoutez une '''DataSource''' de l'onglet '''[Data Access]'''.
** Set the DataSet to your active ZQuery.
+
** Faites pointer le DataSet vers votre ZQuery active.
  
* Drop a '''DBGrid''' from the '''[Data Controls]''' tab.
+
* Ajoutez une '''DBGrid''' de l'onglet '''[Data Controls]'''.
** Set the Datasource to your DataSource.
+
** Faite pointer Datasource vers votre DataSource.
** If all is ok you should now be able to see the records from your table.
+
** Si tout est en ordre, vous devriez voir vos données dans le tableau.
  
== More information about working with Zeos ==
+
== Plus d'informations sur l'utilisation de Zeos ==
  
Here you can find some really useful articles explaining Zeos usage and it's internals, some of them  also talk about Delphi specific stuff but mostly the same techniques can be used in Lazarus too.<br>
+
Voici quelques articles très utiles expliquant l'utilisation de Zeos ainsi que ses rouages internes. Certains sont spécifiques à Delphi mais les mêmes techniques peuvent être utilisées avec Lazarus.<br>
  
 
* [http://zeos.firmos.at/kb.php?mode=article&k=6 The ZeosLib DBOs 6.1.5 - With Delphi 7 and Firebird 1.5]
 
* [http://zeos.firmos.at/kb.php?mode=article&k=6 The ZeosLib DBOs 6.1.5 - With Delphi 7 and Firebird 1.5]
 
* [http://zeos.firmos.at/kb.php?mode=article&k=4 Overview of the Zeos Database Objects Architecture]
 
* [http://zeos.firmos.at/kb.php?mode=article&k=4 Overview of the Zeos Database Objects Architecture]
 
* [http://zeos.firmos.at/kb.php?mode=article&k=5 An Introduction To ZDBC API]
 
* [http://zeos.firmos.at/kb.php?mode=article&k=5 An Introduction To ZDBC API]
* Also check the [http://zeos.firmos.at/downloads.php Downloads] section for real examples wich can be easily ported to Lazarus.
+
* Consultez aussi la section [http://zeos.firmos.at/downloads.php Downloads] pour des exemples qui peuvent être facilement portés sous Lazarus.
  
 +
Attention tous les liens précédents affichent une page 404
 
<br>
 
<br>
'''Please complete me :)'''
+
'''Complétez SVP :)'''
 +
 
 +
= Bugs et problèmes possibles =
 +
 
 +
# J'ai remparqué que parfois, quand je fais un rebuild de Lazarus, il ne trouve pas certains fichiers de Zeos. Essayez ce qui suit :
 +
#* Utilisez '''Paquet/Graphe des paquets''' dans le menu principal.
 +
#* Ouvrez le paquet '''ZComponent'''.
 +
#* Bouton de droite sur l'élément '''Fichier''' dans la liste.
 +
#* Choisissez '''[Recompiler tout ce qui est requis]'''.
 +
#* Quand il demande "Re-compiler ceci et tous les paquets requis?", répondez '''[Oui]'''.
 +
#* Recompilez Lazarus normalement (avec les paquets).<br><br>
 +
 
 +
''Je ne sais pas si le point suivant est toujours d'actualité...''
 +
** There is a bug in [[Glossary#Freepascal|FPC's]] [http://lazarus-ccr.sourceforge.net/docs/rtl/sysutils/ansistrcomp.html AnsiStrComp] wich causes unreliable PChar comparison, this is obvious when using a DBGrid to edit data, '''AnsiStrComp('abc', 'abcd')''' can't detect them as being different but it detects '''AnsiStrComp('abd', 'abcd')''' ignoring multiple chars from the second string. This bug was found by [[User:Jesusrmx|Jesusrmx]]. It will probably be fixed soon, see [http://www.freepascal.org/bugs/showrec.php3?ID=4325 Bug Report].
  
== Possible Bugs and Issues ==
+
=Voir aussi=
  
# I have noticed that somethimes when building Lazarus it cannot find some Zeos files, as a quick workaround try this:
+
* [http://zeoslib.sourceforge.net/index.php Forum pour ZeosLib]
#* Use '''Components/Package Graph''' from the main menu.
+
* [[ZeosDBO/fr|ZeosDBO]]
#* Open the '''ZComponent''' package.
 
#* Right Click on the '''Files''' item in the list.
 
#* Choose '''[Recompile all required]'''.
 
#* When asked "Re-Compile this and all required packages?" answer '''[Yes]'''.
 
#* Recompile Lazarus normally (with packages).<br><br>
 
# There is a bug in [[Glossary#Freepascal|FPC's]] [http://lazarus-ccr.sourceforge.net/docs/rtl/sysutils/ansistrcomp.html AnsiStrComp] wich causes unreliable PChar comparison, this is obvious when using a DBGrid to edit data, '''AnsiStrComp('abc', 'abcd')''' can't detect them as being different but it detects '''AnsiStrComp('abd', 'abcd')''' ignoring multiple chars from the second string. This bug was found by [[User:Jesusrmx|Jesusrmx]]. It will probably be fixed soon, see [http://www.freepascal.org/bugs/showrec.php3?ID=4325 Bug Report].
 

Latest revision as of 12:41, 3 March 2020

Deutsch (de) English (en) español (es) français (fr) português (pt) русский (ru) 中文(中国大陆)‎ (zh_CN)

Portail de la base de données

Références:

Tutoriels/articles pratiques :

Bases de données

Advantage - MySQL - MSSQL - Postgres - Interbase - Firebird - Oracle - ODBC - Paradox - SQLite - dBASE - MS Access - Zeos

Avant-propos

Ce tutoriel concerne le téléchargement, l'installation et l'utilisation de Zeoslib avec Lazarus et FPC. Cette traduction est partielle. Elle ne prend pas en compte ce qui est trop vieux (versions anciennes des logiciels).

Les développeurs de Zeos mettent à disposition un forum. Pour plus d'informations sur ZeosLib, pour poser (ou répondre à) des questions sur l'utilisation de Zeos et pour des rapports de bugs, veuillez vous rendre sur le forum ZeosLib.

Téléchargement de Zeos

Zeos a été porté sur Lazarus. Il n'y a pas de distribution officielle mais vous pouvez aisément le télécharger via SVN en suivant les étapes suivantes :

SVN

Windows

(Tortoise SVN est une extension shell de l'Explorateur Windows : clic droit sur le dossier destination -> SVN Checkout dans le menu shell, adresse du dépôt dans "URL Repository").

Linux/BSD

ZIP

Vous pouvez télécharger la dernière version en fichier ZIP depuis sourceforge.net :

Installation des composants

Nous supposons que vous avez Lazarus >= 1.0.2 (et donc FPC >= 2.6.0) C'est une partie astucieuse, donc vous devrez avoir un peu de patience et lire ceci attentivement cette partie.

  • Démarrez Lazarus.
  1. Allez dans Paquet/Ouvrir un fichier paquet(.lpk) dans le menu principal.
  2. Allez dans <votre répertoire zeosdbo>/trunk/packages/lazarus/ et ouvrez zcomponent.lpk
  3. Cliquez sur [Compiler] si vous ne voulez pas installer les composants dans l'IDE
  4. Cliquez sur [Installer]
  5. On va vous demander si vous voulez reconstruire Lazarus.
  • Répondez [Oui].
  • Attendez un moment. Si tout va bien, Lazarus devrait redémarrer.
  • Maintenant, vous devriez voir l'onglet [Zeos Access] dans la palette de composants.

Zeos Components.png

Si vous obtenez une erreur "Cannot find unit ZClasses" ou quelque chose de semblable, vous devez alors vérifier précisément la casse des noms ds fichier dans les sources de votre distribution Zeos.

  • Même si la casse correspond exactement, le fichier source du paquet auto généré peut générer la mauvaise casse de nom dans la clause Uses (Lazarus 0.9.18), i.e.:
{ This file was automatically created by Lazarus. Do not edit!
  This source is only used to compile and install the package.
}
unit Zcore; 
interface
uses
  Zclasses, Zcollections, Zcompatibility, Zexprparser, Zexprtoken, Zexpression, 
  Zfunctions, Zmatchpattern, Zmessages, Zsysutils, Ztokenizer, Zvariables, 
  Zvariant; 
implementation
end.
  • Remarquez que Lazarus a nommé ZClasses Zclasses, ce qui débouche sur un conflit de nom. On peut supposer que c'est un bug à Lazare, non pas du paquet Zeos. Une façon de contourner consiste à renommer tous les fichiers source de Zeos en minuscules. Allez à la pêche dans chaque sous-répertoire sous src/ et exécutez cette commande dans une fenêtre bash:
 rename -v 'y/A-Z/a-z/' *
  • Ensuite, dans Lazarus, rouvrez le paquet (.lpk) et corriger la casse des noms de fichier en cliquant sur "More..."/"Fix Files Case"
  • Le paquet devrait compiler maintenant.

Créez votre première application Zeos

  • Ajoutez une ZConnection.
    • Remplissez les champs User, Password, Host, Port et Protocol (ainsi que les autres paramètres nécessaires).
    • Positionnez Connected à True.
  • Ajoutez une ZQuery (ne confondez pas avec ZReadOnlyQuery).
    • Faites pointer Connection vers votre ZConnection active.
    • Mettez dans les propriétés de Sql quelque chose comme SELECT * FROM MyTable
    • Positionnez Active à True.
  • Ajoutez une DataSource de l'onglet [Data Access].
    • Faites pointer le DataSet vers votre ZQuery active.
  • Ajoutez une DBGrid de l'onglet [Data Controls].
    • Faite pointer Datasource vers votre DataSource.
    • Si tout est en ordre, vous devriez voir vos données dans le tableau.

Plus d'informations sur l'utilisation de Zeos

Voici quelques articles très utiles expliquant l'utilisation de Zeos ainsi que ses rouages internes. Certains sont spécifiques à Delphi mais les mêmes techniques peuvent être utilisées avec Lazarus.

Attention tous les liens précédents affichent une page 404
Complétez SVP :)

Bugs et problèmes possibles

  1. J'ai remparqué que parfois, quand je fais un rebuild de Lazarus, il ne trouve pas certains fichiers de Zeos. Essayez ce qui suit :
    • Utilisez Paquet/Graphe des paquets dans le menu principal.
    • Ouvrez le paquet ZComponent.
    • Bouton de droite sur l'élément Fichier dans la liste.
    • Choisissez [Recompiler tout ce qui est requis].
    • Quand il demande "Re-compiler ceci et tous les paquets requis?", répondez [Oui].
    • Recompilez Lazarus normalement (avec les paquets).

Je ne sais pas si le point suivant est toujours d'actualité...

    • There is a bug in FPC's AnsiStrComp wich causes unreliable PChar comparison, this is obvious when using a DBGrid to edit data, AnsiStrComp('abc', 'abcd') can't detect them as being different but it detects AnsiStrComp('abd', 'abcd') ignoring multiple chars from the second string. This bug was found by Jesusrmx. It will probably be fixed soon, see Bug Report.

Voir aussi