ATTENTION
: le contenu des ces pages web est soumis aux dispositions
légales françaises et internationales en matière de
droits d'auteurs et de copyright.
NOTA : La plupart de ces articles ont été publiés
dans la revue Point DBF entre 1995 et 1999.
Paradox
cookbook
Vous trouverez dans
la présente rubrique une série d'articles et de papier
technique du temps ou j'étais "chef de rubrique" Paradox pour
Point DBF, un mensuel consacré au bases de données et au
développement en général.
Supplément technique n°1 |
Gérer
les événements Qu'est ce qu'un événement ? Classification des méthodes intégrées Activation des méthodes intégrées Trajet d'un événement Récupération d'un événement Vecteur de l'événement (le paquet eventInfo) Comportement par défaut d'un UIObject Chaînage des événements Simuler un événement Centraliser le code en bibliothèque avec ObjectPal Centraliser le MouseEnter Centraliser le PushButton Centraliser les actions Conclusion : centraliser ou non ? Travailler en multi utilisateurs Configuration d'une application Paradox en réseau sous Windows Les différentes architectures de mise en réseau d'application Éléments à considérer Programmer en ObjectPal pour le multi-utilisateurs Les verrous Méthodes et procédures de gestion des verrous Le problème du verrou mortel Rafraîchissement des données Paramétrage du pilote Conseils divers pour la programmation en réseau Optimiser Paradox Matériel Système IDAPI Paradox Code ObjectPal Requêtes Recettes de cuisine, sauce ObjectPal... par le Maître queux Brillin Savarat Mettre en majuscule dans un champ Changement automatique de valeur binaires Contraindre la saisie en minuscule Derouler la liste dès l'arrivée dans le champs Vérifier l'unicité d'un index secondaire Au secours ! Paradox est en panne..., vite, appelez le Docteur Xann GHEE Le filtre récalcitrant Vermine mortelle Version déverminée de Paradox 5 Les sources... |
Supplément technique n°2 |
Les
actions 1 Un goulot d'étranglement pour le moteur de Paradox 2 Les différentes classes d'actions 3 Générer des actions 4 Récupérer et traiter les actions 5 Visibilité des actions 6 Chainage des actions 7 Traiter les dataAction 8 Supprimer en cascade 9 Créer de nouvelles actions 10 Diffuser une action - la méthode 'broadcastAction' 11 Empiler une action - la méthode 'postAction' 12 Générer des actions par le handle de fiche Programmer les états 1 les calculs dans les champs 2 Opérateurs globaux 3 Position du champ calculé 4 Opérateurs globaux spécifiques aux états 5 Opérateurs spéciaux 6 Opérations directes sur les champs de la table 7 Opérations combinées 8 Utilisation de la structure 'iif' dans un champ calculé 9 Utilisation de la méthode 'readEnvironmentString' 10 Faire sciemment une erreur dans un champ calculé 11 Manipuler les UIObjects dans un handle d'état 12 Créer une méthode intégrée au niveau de l'état 13 Lancer une procédure personnalisée programmée dans l'état 14 Créer une fiche à destination de l'imprimante et/ou ouvrir un état en tant que fiche 15 Noircir des cases 16 Paramétrer les entêtes d'un état : Paradox et les fichiers .INI ou configurons Paradox... 1 Structure d'un fichier .INI 2 WIN.INI Section PDOXWIN Section IDAPI Section OBEX 3 PDOXWIN.INI Section PROPERTIES Section PROJECTVIEWER Section EXPERTS Section HISTORY Section DESIGNER Section DESKTOP Section WINDOWS Section PAL... Section IDE Section FICHE Section ETAT Section QUERY Section PICTURES Section FORMATS 4 PDOXLITE.INI 5 PDOXWORK.INI 6 Les paramètres de la ligne de lancement de Paradox Windows 7 Exemples Les sources... |
Supplément technique n°3 |
Tout
sur les Tcursor's Assignation d’un Tcursor Navigation sur les enregistrements d'un TCursor Localisation d'enregistrements Déplacement dans les enregistrements Test de position d'un enregistrement Recherche de la position d'un enregistrement Recherche du nombre d'enregistrements d'une table Edition dans un TCursor Lecture, assignation et modification d'un champ Notation directe Notation indirecte Annulation des modifications entreprises sur un enregistrement Utilisation de FieldValue et setFieldValue Mise à jour d'enregistrements Vidage d'un enregistrement Suppression d'un enregistrement Insertion d'un enregistrement Validation d'un enregistrement Copie d'enregistrement entre TCursor assignation directe Utilisation des méthodes CopyToArray et CopyFromArray Utilisation de copyRecord Le balayage des tables Balayage à l'aide de la stucture SCAN Balayage manuel Balayage horizontal d'une table Gestion des données dans le modèle relationnel Commutation d'index Filtrage des données à l'aide d'un TCursor Filtrage sur l'index actif Filtrage général méthodes communes aux tables et aux TCursors Manipulations globales Calculs Énumération diverses Manipulation des index Vérouillage Manipulation des champs Propriété de la table méthodes diverses et leur emploi Les erreurs / Comment protéger le code INTRODUCTION Rappel sur la gestion des événements Type d'erreurs Les avertissements Les erreurs critiques MÉCANISME DE GESTION DES ERREURS OUTILS DE MANIPULATION DES ERREURS SÉCURISATION DU CODE Détection des erreurs Dans les methodes et procédures personnalisées Dans les méthodes intégrées Traitement des erreurs VERS UNE GESTION CENTRALISÉE DES. ERREURS Redimensionner les fiches Le problème des twips et des pixels Les bonnes dimensions des fiches Les fiches à redimensionnement automatique Moulinette à redimensionner les fiches Premier essais Second essais Troisème essais Conclusion Figer les dimensions du bureau Recette de cuisine sauce Objectpal ajout d'une clef valuée position au premier nom correspondant à la lettre frappée détournement du message standard d'appel à la table de référence Au secours ! Paradox est en panne 1 Les actions de menu de Paradox Windows qui ne marchent pas 2 Les boutons Windows 'min' et 'max' déjantés 3 Corrections apportées par la version 'transparente' 5.02 Les sources... |
Supplément technique n°4 |
1
LES EXPERTS 2 LE NOUVEL EXPLORATEUR D’OBJETS 3 INDEX SECONDAIRE UNIQUE ET/OU DÉCROISSANT 4 MÉTHODE INTÉGRÉE INIT 5 NOUVEAUX TYPES DE DONNÉES 5.1 type dataTransfer 5.2 type OLEauto 5.3 type mail 5.4 type toolBar 6 NOUVELLES MÉTHODES 6.1 type dataBase 6.2 type filesystem 6.3 type form 6.4 type memo 6.5 type Query 6.6 type string 6.7 type system 6.8 type TCursor 7 PROGRAMMATION DES OCX 7.1 Boîte liste 7.2 Boîte à option 7.3 Incrémenteur 7.4 Barre de progression 7.5 Barre graduée 8 BUGG Paradox 7 : l’expert de texte 9 REQUETES 10 GESTION DE SECTION CRITIQUE Les sources... |
Supplément technique n°5 |
Le
Paradox du Client/Serveur Un peu d'histoire Les travaux du docteur CODD Base de données micro Intérêt du concept client /serveur serveur de fichier versus serveur SQL Procédures stockées Déclencheurs (ou triggers) L'architecture client/serveur SQL Le SQL Définition des données (DDL) Manipulation des données (DML) Variables dans une requête SQL Controle des données (DCL) La notion de transactions La connexion Verrouillage optimiste versus verrouillage pessimiste Au travail ! Les outils Le code Instruction ObjectPal utilisées dans le SQL Un exemple de traitement SQL Un outil de prévisualisation d'états La palette de boutons Le principe Code de la fiche REP_VIEW variables globales méthode intégrée Open méthode personnalisée BuildMenuReport Traitement centralisé des boutons Aide contextuelle et centralisé des boutons A quoi sert le timer ? il faut rester cohérent Au fait comment lancer le prévisualisateur ? Le MDI Le MDI, quésaco ? Le MDI dans Paradox Création de la fiche Père Méthode personnalisée BuildPopFile Code de la méthode BuildPopFile Traitement des actions de menu de la fiche MDI Père ouvrir une fiche à travers la méthode personnalisée OpenForm Fermeture de la fiche MDI Père Fiche enfant Recette de cuisine sauce Objectpal Sélectionner des clients homonymes par clic dans le popUp prénom Aide à la saisie par référence de table externe Contrôle de saisie avec chois dans une liste Saisie contrôle par code Saisie contrôle par code et libellé Au secours ! Paradox est en panne Le monstrueux bug de la taille de la fenêtre qui tue ! Les sources... |
Supplément technique n°6 la version authentique et originale en pdf ! |
Le QBE, en long en large et en travers Requêtes monotabulaires Le système QBE Interogation par égalité Correspondance approchée Les différents types de coches Les opérateurs logiques opérateurs de comparaison Les calculs dans les requêtes Utilisation de valeur exemple Renommer un champ calculé Paramétrage de l’exécution de la requête Paramétrage de la réponse Option de la table réponse Tri de la table réponse Options de requête Les blancs vallent-ils zéro ? Obtenir le SQL équivalent Requêtes multi tables Lier les tables (le modèle relationnel dans une requête) Jointure externe Utiliser un modèle relationnel pré-défini Requêtes de mise à jour INSÉRER SUPPRIMER REMPLACERPAR Requêtes sur des ensembles de valeurs Opérateur ENSEMBLE Coche GrouperPar Quelques requêtes croustillantes... Requêtes réflexives Requêtes d’exclusion Accélérer les requêtes Indexation Tampon mémoire Paramètres de requête eviter jokers et champs mémo n’extraire que la clef Fichier mémoire de Windows disque compressé Equivalence SQL/QBE des requêtes Opérateur en anglais Programmer les programmes Méthodes de manipulation du code Un exemple : des chiffres et des lettres... Algorithme Mise en oeuvre Un générateur de formules Exécution d’une formule Test de compilation Test d’exécution de la formule Sauvegarde de la formule recette de cuisine sauce Objectpal Cryptage de colonnes Filtrage rotatif Bouton reste enfoncé Ordonnancement du plus récent au plus ancier Colorisation séléctive de champs de table Les sources... |
Calculs de delta horaires | Le
temps, c’est de l’argent… Savoir le gérer est essentiel ! Savez vous dans quel délais moyen votre demande de SAV ou d’assistance est traitée ? Non ? Pourtant rien de plus simple à mettre en œuvre, même si l’on doit tenir compte des jours et heures ouvrables, des jours fériés et des congés… Les sources... |
Une gestion de parc informatique | Tous
les PME dont l’informatique est en pleine expansion sont
confrontées au même problème : recenser le
matériel du parc informatique afin de connaître les
équipements à maintenir et à renouveler. Les sources... |
Une loupe à données | Il
est fréquent, dans les applications de gestion de ne pas pouvoir
visualiser tous les champs d’une table, ou de limiter la dimension des
champs compte tenu du manque de place. Dès lors il semble
opportun de disposer d’un petit outil permettant de visualiser tout le
contenu d’un champ ou d’un enregistrement d’une table… Les sources... |
Gestion de planning | Gérer
un planning, c’est à dire un emploi du temps, est une chose
rendue difficile à cause de la structure archaïque des
mesures du temps. En effet, comment rendre simple et souple un
système basé sur : · l’existence de 365 ou 366 jours par ans ? · 28, 29, 30 ou 31 jours par mois ? · des journées de 24 heures ? · des heures de 60 minutes ? etc… Voici un exemple d’application qui résous une partie de ce problème. Les sources... |
L’état de l’art en matière de requêtes QBE complexes | Le
mode de requête « Query By Exemple »
spécialement utilisé par Paradox, est très
très performant. Mais certains se heurtent à quelques
difficultés dès que les extractions s’avèrent
complexes. Cet article se propose de donner quelques recettes en
matière de requêtes QBE et comment optimiser leur
exécution… Les sources... |
Paradox l’Euro et l’an 2000... |
Tient
donc, un sujet à la mode... Comment donc Paradox va-t-il se comporter avec l’Euro et lors du passage à l’an 2000 ? Un article qui vient en complément de ceux que vous avez sans aucun doute récemment lu dans les colonnes de Point DBF, plus exactement dans le numéro du mois de juin, où il était question des rustines de Microsoft… Les sources... |
Tous
les articles Paradox / Point DBF tels quels...
format image jpeg, 256 niveaux de gris, 300ppp
N°
/ date |
Titre |
Pages
(*. jpg) |
54 / Mars 1995 | Mécanisme de recherche incrémental en Objectpal | 48, 49, 50 |
55
/ Avril 1995 |
Paradox, QBE, ObjectPal et les champs date [les sources] | 35, 38, 39 |
Un module de gestion des accès utilisateurs [les sources] | 40, 41, 42 |
|
56
/ Mai 1995 |
Un calendrier avec Paradox sous Windows [les sources] | 42, 43,44, 45 |
57
/ Juin 1995 |
Un module de sauvegarde des données des tables Paradox en ObjectPal [les sources] | 53, 54, 55, 56 |
58
/ Juillet-Août 1995 |
Compression des données à sauvegarder [les sources] | 35, 38 |
Le "Drag and Drop" avec ObjectPal [les sources] | 39, 40 |
|
59
/ Septembre 1995 |
Quatre petits contrôles dynamiques [les sources] | 54 |
Une calculette avec ObjectPal [les sources] | 55, 56 |
|
60
/ Octobre 1995 |
Un compilateur d'objets Paradox (partie 1) [les sources] | 48, 49 |
61
/ Novembre 1995 |
Une bibliothèque de gestion de pile [les sources] | 70, 71 |
Un compilateur d'objets Paradox (partie 2) [les sources] | 71, 72, 73 |
|
62
/ Décembre 1995 |
Les fonctions cachées de Paradox [les sources] | 50, 51 |
Un outil de recherche de champs de table [les sources] | 52, 53, 54 |
|
63
/ Janvier 1996 |
Un outil de construction interactif de requêtes SQL [les sources] | 51, 52,53, 54 |
64
/ Février 1996 |
Mon voyage en Paradox 7 ou comment Borland fait une petite révolution en douceur | 43, 44 |
Un descripteur de fiches (partie 1) [les sources] | 45, 46, 47 |
|
Revue livresque spécial Paradox Windows | 48 |
|
65
/ Mars 1996 |
Bibliographie
Delphi |
67, 68 |
66
/ Avril 1996 |
Un descripteur de fiche (partie 2) [les sources] | 25, 26, 27 |
Un correcteur de champ [les sources] | 27, 28, 29 |
|
Revue bibliographique spécial méthodologies | 30, 31 | |
67
/ Mai 1996 |
Un module de gestion des erreurs Paradox pour Windows [les sources] | 52, 53 |
68
/ Juin 1996 |
Création et gestion du modèle relationnel Paradox / ObjectPal (partie 1) [les sources] | 66, 67 |
69
/ Juillet-Août 1996 |
Création et gestion du modèle relationnel Paradox / ObjectPal (partie 2) [les sources] | 66, 67, 68 |
70
/ Septembre 1996 |
Un descripteur de tables Paradox (partie 1) [les sources] | 42, 43, 44, 45, 46 |
71
/ Octobre 1996 |
Un descripteur de tables Paradox (partie 2) [les sources] | 47, 48, 49 |
Suivre des modifications de tables et les archiver (nota : voir erratum ci dessous) [les sources] | 49, 50, 51 |
|
72
/ Novembre 1996 |
Suivre des modifications de tables et les archiver erratum [les sources] | 66 |
Aide à la saisie et à la visualisation des données [les sources] | 67 | |
Création et gestion du modèle relationnel Paradox / ObjectPal (partie 3) [les sources] | 68, 69 | |
73
/ Décembre 1996 |
Piloter une imprimante depuis Paradox 7 [les sources] | 38, 39, 40 |
Carnetel (une gestion de carnet téléphonique) [les sources] | 41, 42 | |
D'autres
articles sont à venir... en tout une cinquantaine !
Attention, les codes sources ont été réalisés avec les versions 5 ou 7 (16 bits et 32 bits) de Paradox pour Windows de Borland. L'auteur comme l'entreprise Borland ne peut être tenu pour responsable des erreurs et mauvaises utilisation du code, comme de leur conséquence.