Difference between revisions of "SQLdb Tutorial4/fr"

From Free Pascal wiki
Jump to navigationJump to search
 
(3 intermediate revisions by the same user not shown)
Line 31: Line 31:
  
 
== Chacun a sa propre façon de faire ==
 
== Chacun a sa propre façon de faire ==
Your use of data modules will vary to suit your own needs. but as an example, I have at least 2 data modules:
+
Votre utilisation des modules de données variera selon vos propres besoins. A titre d'exemple, j'ai au moins deux modules de données :
  
Unit: DataModule1   
+
Unité : DataModule1   
On this module I 'drop' a ''T*Connection'' and a ''TSQLTransaction''.
+
Sur ce module, je pose ('drop') un ''T*Connection'' et un ''TSQLTransaction''.
  
 
[[file:conn.jpg]]
 
[[file:conn.jpg]]
  
DataModule1 is used as the connection for all queries.
+
Le DataModule1 est utilisé comme connexion pour toutes les requêtes.
  
I then create a DataModuleN for each table or view.
+
Je crée ensuite un module de données pour chaque table ou vue.
  
 
[[file:dm2.jpg]]
 
[[file:dm2.jpg]]
  
Each DataModuleN will need to have the DataModule1 unit (unit2 in this example) added to the USES clause to connect to the database.
+
Chaque DataModuleN (unit2 dans cet exemple) nécessite d'avoir l'unité DataModule1 ajoutée dans sa clause use pour se connecter à la base de données.
  
From here everything is the same as stated in [[SQLdb Tutorial1]]. The components are connected in the same way and access is identical.
+
De là, tout est identique à ce qui est indiqué dans [[SQLdb Tutorial1/fr|Tutoriel SQLdb 1]]. Les composants sont connectés de la même manière et l'accès est identique.
  
 
== Plus d'utilisations des modules de données ==
 
== Plus d'utilisations des modules de données ==
=== Additional components ===
+
=== Composants supplémentaires ===
In this example, DataModule1 had nothing more than a Connection and Transaction, but in a 'real' application, this container would typically also hold global non-visual components to be used by the application.
+
Dans cet exemple, DataModule1 n'a rien d'autre qu'une connexion et une transaction, mais dans une application 'réelle', ce conteneur tiendra typiquement des composants non visuels globaux pour être utilisés dans l'application.
  
For example, Load and Save INI settings, ''TOpenDialog'', ''TSaveDialog'', etc. The concept here is to isolate data access from the business logic of an application. A change in data source for any application is never a minimal task, but having the datasources isolated will make the change much easier.
+
Par exemple, enregistrer et sauvegarder des réglages dans une un ficher INI, ''TOpenDialog'', ''TSaveDialog'', etc. Le concept ici est d'isoler l'accès aux données de la logique métier d'une application. Une modification dans une source de données dans quelque application n'est jamais une petite tâche, mais l'isolation de la source de données rendra le changement plus simple.
  
 
=== Débogage ===
 
=== Débogage ===
Debugging a program is also a difficult task. By separating data access and business logic, the code to be viewed is halved. Data access and business logic can be tested separately to at least halve the problem.
+
Le débogage d'un programme est une tâche difficile. en séparant l'accès aux données et la logique métier, le code à visualiser est réduit de moitié. L'accès aux données et la logique métier peuvent être testées séparément pour au moins diviser en deux le problème.
  
The importance of the ''DataModule'' will become even more obvious when developing other applications using the same database and tables. The data module can of course be reused in the new application.
+
L'importance des modules de données même plus évident quand on développera d'autres applications utilisant la même base de données et les mêmes tables. Le module de données peut être bien sûr réutilisé pour une nouvelle application.
  
 
== Voir aussi ==
 
== Voir aussi ==

Latest revision as of 07:31, 4 April 2017

English (en) français (fr) 日本語 (ja)

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

Introduction

Ce tutoriel est une tentative de démonstration de l'emploi des Modules de données de Lazarus pour isoler les composants d'accès aux bases de données d'un projet de la logique associées aux accès. Une telle isolation rend la maintenance du programme et son débogage plus facile.

Le tutoriel a été développé en utilisant Windows 7 et SQLite3 comme base de données avec Lazarus 1.0.8 et FPC 2.6.2 ; toutefois, cela devrait fonctionner avec des versions antérieures. De la même façon, d'autres SGBD ou systèmes d'exploitation devraient nécessiter peu de modification, si jamais il y en a.

Pourquoi utiliser des modules de données ?

C'est simple - après avoir suivi les tutoriels de Lazarus :

développer une application 'réelle' devient plus difficile. 'Form1' grossit de manière exponentielle en gérant les différents événements et requêtes sur la base de données.

L'isolation de chaque accès aux tables dans un simple module de données rend le débogaqe et la maintenance plus simple. Une application peut avoir un nombre quelconque de modules de données - une petite application avec seulement une ou deux tables peut sans doute se satisfaire d'un seul module de données - une application plus ample pourrait probablement bénéficier de l'emploi d'un module de données pour chaque table ou vue.

L'exemple montré ici utilise juste deux tables avec de simples requêtes, mais cela peut être étendu pour intégrer plus d'options pour chaque table.

Commençons

Dans l'EDI de Lazarus, créez une nouvelle application et cliquez sur Fichier --> Nouveau --> Module de données.

newDM.jpg

Il vous sera présenté une fenêtre comme si vous aviez sélectionné 'Nouvelle fiche' !

dm1.jpg

La différence est que cette fenêtre/fiche n'accepte que des composants non visuels (pas seulement des composants liés aux base de données par ailleurs). En fait, jetez un oeil sur la palette : elle a été grandement réduite, elle ne permet plus que la sélection des composants non visuels.

Chacun a sa propre façon de faire

Votre utilisation des modules de données variera selon vos propres besoins. A titre d'exemple, j'ai au moins deux modules de données :

Unité : DataModule1 Sur ce module, je pose ('drop') un T*Connection et un TSQLTransaction.

conn.jpg

Le DataModule1 est utilisé comme connexion pour toutes les requêtes.

Je crée ensuite un module de données pour chaque table ou vue.

dm2.jpg

Chaque DataModuleN (unit2 dans cet exemple) nécessite d'avoir l'unité DataModule1 ajoutée dans sa clause use pour se connecter à la base de données.

De là, tout est identique à ce qui est indiqué dans Tutoriel SQLdb 1. Les composants sont connectés de la même manière et l'accès est identique.

Plus d'utilisations des modules de données

Composants supplémentaires

Dans cet exemple, DataModule1 n'a rien d'autre qu'une connexion et une transaction, mais dans une application 'réelle', ce conteneur tiendra typiquement des composants non visuels globaux pour être utilisés dans l'application.

Par exemple, enregistrer et sauvegarder des réglages dans une un ficher INI, TOpenDialog, TSaveDialog, etc. Le concept ici est d'isoler l'accès aux données de la logique métier d'une application. Une modification dans une source de données dans quelque application n'est jamais une petite tâche, mais l'isolation de la source de données rendra le changement plus simple.

Débogage

Le débogage d'un programme est une tâche difficile. en séparant l'accès aux données et la logique métier, le code à visualiser est réduit de moitié. L'accès aux données et la logique métier peuvent être testées séparément pour au moins diviser en deux le problème.

L'importance des modules de données même plus évident quand on développera d'autres applications utilisant la même base de données et les mêmes tables. Le module de données peut être bien sûr réutilisé pour une nouvelle application.

Voir aussi