Présentation
Documentation
L'équipe
Sérialisation
 
Programmes
Objets
Libs Utilitaires
Libs Internes
   
 
Editeur
Syntaxes
Windows
Versions
   

SCR/AL1 - Evolutions récentes

28. Modifications apportées dans les versions 4.21 et 4.22 (sept-oct 95)

SCR4_E

Pour éviter les problèmes dus à certains commpilateurs qui ne tolèrent qu'un nombre très limité d'objets par fichier C, les fichiers *.c générés par scr4_e sont limités :

BC

Lors de la création d'une ligne de BC, tous les ISAM référencés dans le VIEWS ou dans LBC sont vidés. Ensuite, la VIEW_CREATE_FN est exécutée. L'action peut notamment fixer des champs dans l'ISAM choisi. Enfin, la BPG correspondant à la VIEW sélectionnée est vidée, puis initialisée avec les valeurs du BC courant et du LBC défini par la VIEW.

Le code suivant permet donc de fixer le type du record à créer :

        VIEW_CREATE_FN {
C_FN {
is_VIEWNB = MN_edit(mn_selectview) - 1;
return(is_VIEWNB);
}
}

Attention : le choix de la VIEW implique que l'on assigne dans l'ISAM DE BASE (ET PAS CELUI DE LA VIEW) une valeur permettant à la VIEW_FN de retrouver le numéro de la VIEW.

BC - NO_MARK

Le mot-clé NO_MARK dans la définition d'un BC empêche les fonctions de marque, copie et paste des lignes de BC (Ctrl+L, Ctrl+C, Ctrl+D, Ctrl+U).

HELP

Lors de l'exploitation de l'aide en ligne, la touche F1 et la touche définie comme HELP dans le driver déclenchent toutes les deux le retour à la table des matières.

Ctree Plus version 6

A partir de cette version de SCR/AL1, l'interface Ctree 6 a été implémenté. Les apports de cette version sont nombreux. Parmi les plus spectaculaires, citons notamment :

La version 4 de Ctree reste bien-sûr disponible. La taille des exécutables générés étant nettement inférieure dans la version 4, cette version peut s'avérer utile dans certaines configurations.

Les conséquences de l'introduction de cette nouvelle version se situent à un triple niveau :

Organisation des exécutables

Deux exécutables scr4 sont disponibles : pour la simplicité, scr4 garde son nom pour la version Ctree 4 et un nouvel exécutable, scr4c6 permet de gérer les bases de données de Ctree Plus v.6.

Les deux programmes ont une syntaxe et un comportement identiques, si ce n'est que l'un gère des base de données Ctree 4 et l'autre Ctree 6.

Organisation des librairies

L'organisation des librairies et des exécutables a été adaptée : la librairie scr4i ne contient plus les fonctions propres à Ctree. Il faut donc linker le programme final avec une librairie spécifique à la version de Ctree souhaitée :

Syntaxe des ISAM

Seuls deux nouveaux mots-clé ont été introduits dans la définition des ISAM : VARLEN et VFIELD. Tous deux sont liés aux records de longueur variable. Ils ne sont disponibles que dans la version 6 de Ctree, mais, comme au moment de la compilation on ignore le système cible, ils sont acceptés dans les deux versions.

VARLEN

Ce mot-clé permet de spécifier que le fichier de données peut contenir des champs de longueur variable. Si une des définitions des champs commence par VFIELD, ce mot-clé est inutile. Par contre, si on prévoit que dans le futur un tel champ va pouvoir être défini dans la base de données, on doit le préciser dès le départ.

Il est à remarquer qu'un fichier VARLEN a l'avantage d'accepter des nouveaux champs sans avoir à reconstruire la base de données. En effet, certains records peuvent contenir plus de champs que d'autres.

VFIELD

La distinction entre FIELD et VFIELD est évidente : elle permet de spécifier si le champ est un champ de longueur variable (le système de base de données doit le supporter!) ou non.

Pour le reste, la syntaxe est la même. Au niveau physique, le comportement est cependant différent :

Au niveau de l'organisation interne d'un record, il faut savoir que les champs VFIELD sont tous regroupés en fin de record, dans l'ordre de leur apparition. Cela implique que l'ordre des champs a de l'importance, mais seulement vis-à-vis des champs de même type (longueur variable ou non).

Notons également qu'un champ quelconque peut être défini comme VFIELD (DATE, SHORT, ...). C'est cette particularité qui permet d'ajouter des champs dans le futur à la base de données. On peut donc modifier un ISAM comme dans l'exemple ci-dessous.

Définition d'origine avec VARLEN mais sans VFIELD

        ISAM isexample {
"isexample"
VARLEN

FIELD string 10 NAME F1
FIELD long NAME F2
FIELD short NAME F3
FIELD long NAME F4
...
INDEX ...
}

Evolution avec VFIELD

        ISAM isexample {
"isexample"
VARLEN

FIELD string 10 NAME F1
FIELD long NAME F2
FIELD short NAME F3
FIELD long NAME F4

VFIELD long NAME F5
...
INDEX ...
}

Limites

Passage de Ctree 4 à Ctree 6

Une application fonctionne soit avec Ctree 4, soit avec Ctree 6, mais pas avec les deux produits simultanément. Même si cela est envisageable, il faudrait une réécriture des sources de Ctree 6 pour éviter les noms de fonctions communs aux deux versions.

Le passage à Ctree 6 demande une transfert des bases de données : en effet, les deux formats ne sont pas compatibles. Pour ce faire, il suffit de traduire la base d'origine en Ascii et de la recharger dans le format de la version 6. Concrètement, on procèdera comme suit :

1. Décharger la base en Ascii

           $ scr4 -af <dbd_dictionary> -dump <isam> <ascii_file>

2. Déplacer les anciens fichiers et les reconstruire en version 6

           $ mv <file>.dat old
$ mv <file>.idx old
$ mv <file>.num old
$ scr4c6 -af <dbd_dictionary> -ic <isam>

3. Recharger le fichier Ascii

           $ scr4c6 -af <dbd_dictionary> -load <isam> <ascii_file>

Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be