Outils pour utilisateurs

Outils du site


issue113:tuto2

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Dernière révisionLes deux révisions suivantes
issue113:tuto2 [2016/10/13 14:11] d52frissue113:tuto2 [2016/10/13 14:50] andre_domenech
Ligne 3: Ligne 3:
 In the previous part of the series, we covered personalizing the Free Vision menu bar, responding to commands, and using default message boxes and dialogs. This third part will describe connecting our Free Pascal / Free Vision program with the Sqlite3 database.** In the previous part of the series, we covered personalizing the Free Vision menu bar, responding to commands, and using default message boxes and dialogs. This third part will describe connecting our Free Pascal / Free Vision program with the Sqlite3 database.**
  
-Dans cette série d'articles, je construirai une application en mode texte avec FreePascal, en utilisant son interface en mode texte pour l'interaction avec l'utilisateur. Ceci sera combiné avec d'autres technologies, plus modernes, telles que l'accès à une base de données en utilisant SQL et l'accès au Web avec HTTP. Le but final du projet est de démontrer comment Pascal peut être utilisé pour construire une application moderne, tout en évitant le surpoids associé à une interface graphique qui utile un jeu de gadgets comme GTK ou Qt.+Dans cette série d'articles, je construirai une application en mode texte avec FreePascal, en utilisant son interface en mode texte pour l'interaction avec l'utilisateur. Ceci sera combiné avec d'autres technologies, plus modernes, telles que l'accès à une base de données en utilisant SQL et l'accès au Web avec HTTP. Le but final du projet est de démontrer comment Pascal peut être utilisé pour construire une application moderne, tout en évitant le surpoids associé à une interface graphique qui utilise un jeu de gadgets comme GTK ou Qt.
  
-Dans la partie précédente de la série, nous avons parlé de la personnalisation de la barre de menu Free Vision, la réponse aux commandes et l'utilisation des boites et dialogues de message par défaut. Cette troisième partie décrira la connexion de notre programme FreePascal / Free Vision à la base de données SQLite3.+Dans la partie précédente de la série, nous avons parlé de la personnalisation de la barre de menu Free Vision, la réponse aux commandes et l'utilisation des boîtes et dialogues de message par défaut. Cette troisième partie décrira la connexion de notre programme FreePascal/Free Vision à la base de données SQLite3.
  
 **Installation **Installation
Ligne 25: Ligne 25:
 Installation Installation
  
-Bien que SQLite n'a atteint la notoriété que relativement récemment, ce projet a commencé depuis 2000. Il a certainement rempli un vide dans l'univers de bases de données, car sa fonctionnalité importante est que les programmes des postes clients sont liés à une simple bibliothèque. Il n'y a pas besoin d'installer une grande interface de la base de données sur la machine de l'utilisateur, ni de se connecter à un serveur externe de base de données par un réseau. Les données sont stockées localement, dans un format de fichier simple. Ceci la rend très rapide et pratique pour les bases de données de taille petite à moyenne auxquelles accède en général un unique utilisateur, tout en rendant les données facilement transportables d'un ordinateur à un autre (par simple copie d'un fichier).+Bien que SQLite n'a atteint la notoriété que relativement récemment, ce projet a commencé depuis 2000. Il a certainement rempli un vide dans l'univers des bases de données, car sa fonctionnalité importante est que les programmes des postes clients sont liés à une simple bibliothèque. Il n'y a pas besoin d'installer une grande interface de la base de données sur la machine de l'utilisateur, ni de se connecter à un serveur externe de base de données par un réseau. Les données sont stockées localement, dans un format de fichier simple. Ceci la rend très rapide et pratique pour les bases de données de taille petite à moyenne auxquelles accède en général un unique utilisateur, tout en rendant les données facilement transportables d'un ordinateur à un autre (par simple copie d'un fichier).
  
-SQLite sera probablement déjà installé sur un système Ubuntu, mais assurons-nous en et installons en ligne de commande à la fois le client et le paquet pour développeur. Nous aurons besoin de cette seconde partie pour compiler l'accès à la base de données dans nos programmes. Les paquets nécessaires sont :+SQLite sera probablement déjà installé sur un système Ubuntu, mais assurons-nous-en et installons en ligne de commande à la fois le client et le paquet pour développeur. Nous aurons besoin de cette seconde partie pour compiler l'accès à la base de données dans nos programmes. Les paquets nécessaires sont :
  
 sudo apt-get install sqlite3 libsqlite3-dev sudo apt-get install sqlite3 libsqlite3-dev
  
-Maintenant, en tant que simple utilisateur, nous pouvons créer une nouvelle base de données en utilisant l'outil en ligne de commande. Par exemple, nous pouvons créer un fichier des numéros de notre magazine favori. Commençons par appeler le vrai fichier «fullcircle.db ». Ainsi :+Maintenant, en tant que simple utilisateur, nous pouvons créer une nouvelle base de données en utilisant l'outil en ligne de commande. Par exemple, nous pouvons créer un fichier des numéros de notre magazine favori. Commençons par appeler le vrai fichier « fullcircle.db ». Ainsi :
  
 $ sqlite3 fullcircle.db $ sqlite3 fullcircle.db
Ligne 47: Ligne 47:
 sqlite> insert into issues values (108, 'issue 108', '- description goes here -', 'http://dl.fullcirclemagazine.org/issue108_en.pdf', 'python inkscape chrome devices arduino');** sqlite> insert into issues values (108, 'issue 108', '- description goes here -', 'http://dl.fullcirclemagazine.org/issue108_en.pdf', 'python inkscape chrome devices arduino');**
  
-La commande CREATE TABLE crée une nouvelle table - -appelée « issues » - dans laquelle plusieurs champs sont définis pour chaque saisie. « id » sera simplement un code numérique d'identification qui sera utilisé par le système pour indexer nos enregistrements par ordre croissant. Pour chaque saisie, l'information enregistrée inclura un titre (title), une description, un lien de téléchargement (download) et des étiquettes (tags) dans des chaînes distinctes. Ceci devient peut-être plus clair quand nous remplissons la base de données avec de la vraie information :+La commande CREATE TABLE crée une nouvelle table - -appelée « issues » - dans laquelle plusieurs champs sont définis pour chaque saisie. « id » sera simplement un code numérique d'identification qui sera utilisé par le système pour indexer nos enregistrements par ordre croissant. Pour chaque saisie, l'information enregistrée inclura un titre (title), une description, un lien de téléchargement (download) et des étiquettes (tags)dans des chaînes distinctes. Ceci devient peut-être plus clair quand nous remplissons la base de données avec de la vraie information :
  
 sqlite> insert into issues values (110, 'issue 110', '- place pour la description -', 'http://dl.fullcirclemagazine.org/issue110_en.pdf', 'python clonezilla inkscape, chromebook'); sqlite> insert into issues values (110, 'issue 110', '- place pour la description -', 'http://dl.fullcirclemagazine.org/issue110_en.pdf', 'python clonezilla inkscape, chromebook');
Ligne 104: Ligne 104:
 L'interface avec Free Pascal L'interface avec Free Pascal
  
-Nous commencerons par écrire un court programme, simplement pour tester la connectivité entre l'environnement de notre programme et la bibliothèque SQLite. À l'intérieur, nous nous limiterons à réaliser un recherche rapide et à afficher les résultats à l'écran avec une commande Writeln.+Nous commencerons par écrire un court programme, simplement pour tester la connectivité entre l'environnement de notre programme et la bibliothèque SQLite. À l'intérieur, nous nous limiterons à réaliser une recherche rapide et à afficher les résultats à l'écran avec une commande Writeln.
  
-Les membres du projet Free Pascal ont préparé une « unit » bien pratique. En fait, il y a plusieurs alternatives mais celle présentée ici semble être la mieux supportée, au moins à l'heure actuelle. Nous avons besoin de l'unit Crt pour Writeln, mais aussi de Strings et Classes ; cette dernière contient le type TStringList qui sera utilisé pour accéder à chaque ligne du résultat recherché. Enfin, Sqlite et Sqlite3db traite la connexion réelle à la bibliothèque :+Les membres du projet Free Pascal ont préparé une « unit » bien pratique. En fait, il y a plusieurs alternativesmais celle présentée ici semble être la mieux supportée, au moins à l'heure actuelle. Nous avons besoin de l'unit Crt pour Writeln, mais aussi de Strings et Classes ; cette dernière contient le type TStringList qui sera utilisé pour accéder à chaque ligne du résultat recherché. Enfin, Sqlite et Sqlite3db traitent la connexion réelle à la bibliothèque :
  
 uses uses
Ligne 234: Ligne 234:
 inherited Init (R, 'xxx');** inherited Init (R, 'xxx');**
  
-R est une variable de type TRect que Free Vision utilise pour indiquer un région rectangulaire de l'écran. Les deux champs A et B sont les angles haut-gauche et bas-droit qui définissent le rectangle, dont X et Y sont dans ce cas les numéros de lignes et de colonnes. D'un autre côté, pDisplay est un pointeur vers TDisplaySQLDialog - un objet qui hérite de TDialog et qui ne fait pas partie des bibliothèques standard de Vision. Aussi, nous devons le définir, écrasant seulement la méthode Init du constructeur pour transmettre le nom du fichier de la base de données à ouvrir et afficher :+R est une variable de type TRect que Free Vision utilise pour indiquer une région rectangulaire de l'écran. Les deux champs A et B sont les angles haut gauche et bas droit qui définissent le rectangle, dont X et Y sont dans ce cas les numéros de lignes et de colonnes. D'un autre côté, pDisplay est un pointeur vers TDisplaySQLDialog - un objet qui hérite de TDialog et qui ne fait pas partie des bibliothèques standard de Vision. Aussi, nous devons le définir, écrasant seulement la méthode Init du constructeur pour transmettre le nom du fichier de la base de données à ouvrir et afficher :
  
 TDisplaySQLDialog = object(TDialog) TDisplaySQLDialog = object(TDialog)
Ligne 259: Ligne 259:
 C'est tout. Le code complet de notre programme, jusqu'à maintenant, peut être trouvé par le lien : http://pastebin.com/sLFWm6pR . C'est tout. Le code complet de notre programme, jusqu'à maintenant, peut être trouvé par le lien : http://pastebin.com/sLFWm6pR .
  
-Dans cette partie, nous avons paramétrer un petite base de données SQLite, puis construit un programme Free Pascal en ligne de commande pour y accéder. Enfin, nous avons intégré le code de la base de données dans notre application Free Vision par l'intermédiaire d'un nouveau type Dialog pour se connecter à la base et afficher les données récupérées. Dans la prochaine partie de la série, nous nous connecterons à Internet de façon à rafraîchir l'information de notre base de données directement depuis le site Web du FullCircle Magazine.+Dans cette partie, nous avons paramétré une petite base de données SQLite, puis construit un programme Free Pascal en ligne de commande pour y accéder. Enfin, nous avons intégré le code de la base de données dans notre application Free Vision par l'intermédiaire d'un nouveau type Dialog pour se connecter à la base et afficher les données récupérées. Dans la prochaine partie de la série, nous nous connecterons à Internet de façon à rafraîchir l'information de notre base de données directement depuis le site Web du FullCircle Magazine.
  
issue113/tuto2.txt · Dernière modification : 2016/10/14 10:24 de auntiee