Obligement - L'Amiga au maximum

Vendredi 22 septembre 2017 - 06:42  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


En pratique : CanDo - créer des bases de données
(Article écrit par Guy Beteille et extrait d'Amiga News - juin 1992)


Nous avons vu le mois dernier les différents types de variables que gère CanDo. Nous allons encore parler de variables et plus particulièrement des variables de type Array et Record.

Pourquoi donc ?

Pour utiliser CanDo afin de créer ses propres bases de données. Bien sûr, CanDo n'a pas pour vocation de générer uniquement des applications de ce type mais tout de même les résultats que l'on peut obtenir sont à mon avis très satisfaisants pour toutes les bases de données courantes (gestion des adresses, de ses disquettes, etc.). Comme il nous faut un exemple (et après réflexion !), j'en suis arrivé à la conclusion que je ne pouvais pas éviter de vous proposer de créer un gestionnaire d'adresses !

Et pour rendre à INOVAtronics ce qui leur appartient, je signale aux possesseurs de CanDo que le Deck "DBaseDeck" qui suit est l'adaptation française du "DBaseDeck" fourni en exemple avec CanDo. Ce Deck a une fonction toute simple : fournir l'ossature de vos futures bases de données. C'est ainsi qu'a été créé "MaBaseDeck" qui ne contient que ce qui a été rajouté à "DBaseDeck".

Une base de données, c'est quoi ?

C'est une collection d'informations, regroupées dans un enregistrement. Dans notre exemple, les informations sont : nom, prénom, adresse, code postal, ville, numéro de téléphone et de fax, et un commentaire. Ces informations qui constituent tous les éléments d'une adresse sont donc stockées dans un enregistrement. Il est évident qu'il va y avoir un nombre indéterminé (et variable) d'enregistrements en fonction de votre gestion des données, ajout ou retrait d'adresses.

Dans un deuxième temps, la base de données devra pouvoir permettre d'utiliser les informations qu'elle contient, par exemple recherche d'une adresse à partir d'un nom, impression d'une série d'adresses, tri.

Réponse de CanDo

Les variables de type "Record" vont servir à regrouper ces informations. Et ceci avec un minimum de programmation. Comme CanDo est un langage orienté objet, chaque information de notre enregistrement va être un objet (ce n'est pas obligatoire). Le nom, le prénom, etc. sont des objets - champs de saisie - créés à partir de leur éditeur. La zone commentaire est un objet document de type mémo.

On peut dire que l'enregistrement (la variable de type Record) ressemble à ceci :

enregistrement = contenu du champ "nom" + contenu du champ "prénom" + contenu du champ "adresse" + ... + contenu du document "commentaire".

Pour faire cela, une seule instruction suffit :

GetDBaseObject MaVariable

"GetDBaseOhject" va placer le contenu de chaque objet de la carte associé à la base de données dans "MaVariable" qui devient une variable de type "Record". Pour qu'un objet soit associé à une variable "Record", il suffit que le nom de cet objet commence par un "." (un point) ! C'est donc très facile à mettre en place. "GetDBaseObject" va prendre le contenu de tous les objets qui se trouvent sur la fenêtre de l'application et dont le nom commence par un point et les assemble dans la variable de type "Record".

Si nous nous limitions aux objets nom, prénom et adresse, notre variable suite à "GetDBaseObject MaVariable serait" : MaVariable.Nom.Prénom.Adresse. D'un point de vue programmation, elle serait exploitable soit en entier, soit par éléments...
  • Let Variable2 = MaVariable ; en faire une copie
  • Let MaVariable.nom = "Dupont" ; changer le nom depuis un script
  • Let MaVariable.prénom = "André" ; changer le prénom depuis un script
  • Let CeNom = MaVariable.nom ; mettre le nom dans une autre variable
Mais (et oui il y a un mais !) un seul enregistrement ne suffit pas puisque par principe une base peut avoir un nombre variable d'enregistrement... Il faut donc de préférence utiliser une variable indicée (un tableau quoi), en terme CanDo une variable Array (Cf. article précédent). Une variable indicée est une variable classique suivie d'un indice entre crochets. La dimension du tableau n'a pas besoin d'être indiquée, et il n'est pas nécessaire que chaque élément existe.
  • Let ArrayVar[1] = 1 ; création d'une variable ArrayVar
  • Let ArrayVar[3] = 4 ; de type Array, ayant deux entrées
Ah, direz-vous Array, Record... on en perdrait son BASIC ! Pas vraiment, car CanDo permet de combiner les deux sans problèmes, et il faut d'ailleurs souvent le faire... Conservons "MaVariable" mais au lieu de "GetDBaseObject MaVariable" faisons "GetDBaseObject MaVariable[Index]" où "Index" est le numéro de l'enregistrement et nous voilà avec une combinaison de variables... "MaVariable[Index]" est bien de type "Array" et de type "Record".

Mieux encore, vous pouvez combiner à volonté. Par exemple si vous désirez mettre les membres d'une même famille dans un même enregistrement, donc saisir plusieurs prénoms, vous pouvez créer la variable "Prénom[Index2]"...
  • Let MaVariable[1].prénom[1] = "André" ; premier membre
  • Let MaVariable[1].prénom[2] = "Julien" ; second membre
  • Let MaVariable[1].prénom[3] = "Anne" ; troisième membre
Objets associés à une base de données

Tous les objets que permet de créer CanDo ne peuvent pas être associés à une base de données. Ceux qui le peuvent sont les champs de saisie texte et nombre entier, les documents de type mémo, les boutons. Dans le cas des boutons (il n'y a pas de contenu), c'est l'état du bouton qui va être pris en compte, soit "On" si le bouton est sélectionné ou "Off" s'il ne l'est pas.

Les instructions

CanDo offre un ensemble d'instructions spécifiquement destinées à manipuler ces variables et donc à gérer la programmation de nos bases.

Commandes agissant sur les variables "Record" :

"GetDBaseObject" placer le contenu des objets dans une variable "Record", "SetDBaseObject" placer les informations d'une variable "Record" dans les objets correspondants.

Commandes agissant sur les variables "Array" :

"FirstArrayIndex" donne le plus petit index, "LastArrayIndex" donne le plus grand index, "NextArrayIndex" donne l'index suivant, "PreviousArrayIndex" donne l'index précédent, "NumberOfArrayEntries" donne le nombre d'entrées, "InsertArrayEntry" insère une entrée, "DeleteArrayEntry" efface une entrée. "SortArray" effectuer un tri, "SearchArray" faire une recherche, "SetSearchArrayFlags" fixer les critères de recherche.

Commandes globales :

"SaveVariable" sauver une variable, "LoadVariable" ouvrir (charger) une variable.

Comment créer sa base à partir du Deck "DBaseDeck"

Ouvrez le Deck "DBaseDeck", ajoutez-y les objets qui vont permettre de saisir les informations. Prenez juste soin que chaque nom d'objet commence par un "." (un point) ! Et c'est tout !

Améliorer ces deux exemples

Le Deck "DBaseDeck" est une application minimum. Pour l'améliorer, vous pourriez ajouter une fonction de tri, une fonction de recherche (les routines sont déjà là), un script pour déplacer le curseur sur le champ suivant à chaque fin de saisie, un menu "Imprimer", un bouton "Début de Fichier" et un autre "Fin de Fichier", un menu "Sauver ASCII" afin d'exporter vos enregistrements vers un traitement de texte...

Deck "DBaseDeck"

CanDo
CanDo
CanDo

Deck "MaBaseDeck"

CanDo
CanDo

CanDo


[Retour en haut] / [Retour aux articles] [Article suivant]