Obligement - L'Amiga au maximum

Vendredi 06 juin 2025 - 12:23  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

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

Articles in English


Réseaux sociaux

Suivez-nous sur X




Liste des 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,
ALL


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


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


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 termes 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]