Bases de données ODBC + MDB - Bases de données ODBC + CSV - Créer un fichier source de données DSN - Créer une base avec des images - commande LIKE - Surbrillance
 
  • les bases de données au format CSV ou TXT ont été créées à partir de MS Excel
    même si l'
    OBCD gère ces formats, Fusion 2.5 ne les gère pas bien, les données ne sont pas réparties dans les colonnes, tout est dans la 1ère colonne...

    il faut donc refaire ces fichiers, possible avec
    LibreOffice Calc

    j’ai fini par trouver la solution pour les bases
    CSV et TXT (ce n’est que du texte, créées dans un logiciel comme Excel)
    vu que je n’ai plus
    Excel, et que j’ai maintenant LibreOffice Calc, j’ai refait mes bases avec, et ça a l’air de marcher

    ouvrir l'ancien fichier
    CSV créé avec Excel, avec LibreOffice Calc
    à l'importation, choisir comme jeux de caractère
    Système, sinon, caractères bizarres
    enregistrer toujours au format
    CSV
 
  • question : faut-il avoir le logiciel approprié / Fusion 2.5 pour créer ces feuilles, et surtout que ça marche chez n'importe qui ?
    pour faire court, le fait que ça ne marchait plus venait-il de l’absence d‘
    Excel, et le fait que ça marche maintenant vient-il de la présence de LibreOffice Calc ?
    ou ça n’a rien à voir et qu'il s'agit simplement d'un changement de présentation obligatoire pour
    Fusion 2.5

    pour
    TXT, j'ai simplement ouvert le fichier CSV avec le bloc-notes, et enregistrer au format TXT
    cf.. plus bas

  • Le matériel se trouve dans le tutoriel 18_1 - mis à jour - à télécharger - cf. page des téléchargements  -
  • pour chaque MFA, un fichier DSN et un fichier CSV ou TXT
  • le fichier DSN indique le Driver utilisé, pour une base CSV ou TXT : DRIVER=Microsoft Text Driver (*.txt; *.csv)
    rappel : le fichier DSN s'ouvre avec le bloc-notes
    enlever le chemin des répertoires des fichiers à
    DefaultDir=
    DBQ=
    afin que ça marche sur n'importe quel ordinateur et qu'il n'y ait pas d'erreur de chemin

    par défaut, quand on utilise l'
    ODBC, il se crée un fichier DSN qui s'installe dans
    C:\Program Files\Fichiers communs\ODBC\Data Sources\*.dsn - pour Windows XP -
    ce répertoire n'existe pas dans
    Windows 7, il semble que les DSN s'installent dans C:\Utilisateurs\***\Mes documents\ , mais pas trouvé ?
  • vous pourrez aussi copier ce fichier directement dans ces répertoires, quand vous lancerez le MFA, il le trouvera directement
  • à garder ou copier également dans votre répertoire de travail, pour vous y retrouver plus tard...., et surtout dans celui de l'application
  • rappels : pour éviter un décalage entre les colonnes, vérifier dans l'éditeur de liste d'événements (faire Ctrl+L) du groupe "Display all" la position de l'action "récupérer la rangée" :
    c'est tout bête mais cela arrive souvent, il s'agit d'un problème d'ordre d'exécution des événements du groupe "
    Display all"
    il faut placer l'action "
    récupérer la rangée" de l'objet ODBC tout à la fin de l'ordre d'exécution
  • même chose avec les autres commandes, dans l'éditeur de liste d'événements, Changer le texte SQL STRING doit être avant SELECT * FROM..., INSERT INTO...
  • en général, pour chaque Bouton cliqué :
    1
    Changer le texte SQL STRING
    2
    Remplacer la sélection par - Commande SQL
    3
    Changer le texte ""
  • vérifier que l'index de chaque liste soit le même
    voir les
    Propriétés des listes, onglet Configuration , il y a l'Option à cocher "Index basés sur 1"
    donc, soit décocher cette option dans toutes les listes, soit la cocher dans toutes
  • bien respecter la syntaxe, ne pas confondre apostrophes et guillemets, ce qui donne une impression d'espace entre eux quand on copie/colle la commande du MFA dans le bloc-notes
    prévoir une boîte d'édition où les commandes SQL sont affichées, assez grande -
    SQL STRING -
    sinon, quand on arrive à la bordure droite de la boîte, une partie de la requête est "mangée", ce qui donne rien au final dans la base
  • ne pas oublier d'ajouter les fichiers DSN et CSV ou TXT dans la construction du programme d'installation

  • Un fichier CSV ou TXT peut être exporté à partir d'un fichier MDB ou XLS, ou simplement, créé avec le bloc-notes
    les guillemets ne sont pas indispensables (ils s'ajoutent quand on ajoute une donnée), mais les
    points-virgules, oui, mais maintenant, des virgules, cf.. plus bas
    quand une colonne ne contient pas de données, le fichier
    CSV affiche ;; exemple : ail;;;sélénium
  • exemple :
    annuaire.mdb devenait
    "Nom" ; "Prénom" ; "Métier" ; "Téléphone"
    "CHACORNAC";"Dany";"FIGEAC";"Informaticienne";"05123412"
    "CHEVALIER";"Julien";"TOULOUSE";"Inspecteur";"04567820"
    "DUBOIS";"Bernard";"MEZIN";"Facteur";"06241789"
    ........

    avec la
    mise à jour, annuaire devient (CSV ou TXT)
    nom,prenom,ville,metier,telephone
    CHACORNAC,Dany,FIGEAC,Informaticienne,5123412
    CHEVALIER,Julien,TOULOUSE,Inspecteur,4567820
    LAMOTHE,Simon,PERPIGNAN,Etudiant,2691213
    DUBOIS,Bernard,MEZIN,Facteur,6241789
    .....
    "SUSUKI","Aïko","REAUP","geek",1020304

    on remarque que les
    guillemets sont absents et que les points-virgules ont été remplacés par des virgules
  • avec la base CSV, petit problème, quand on choisit de trier, œuf vient en premier, et un mot accentué vient en dernier
  • question : parfois, petit problème quand on choisit de trier, la 1ère donnée ne se met pas en haut de la colonne.. >> laisse un espace
    aussi, beaucoup d’espace / dernier Nom ou Ville en bas de la colonne... quand tout est sélectionné
    réponse : sans doute que le fichier se termine par des lignes vides, il suffit de supprimer ces lignes
  • question : comment mettre, d'entrée, en surbrillance la 1ère ligne avec affichage de toutes les données, après avoir tout sélectionné, ou après un tri
    réponse : cf.. page Surbrillance

  • exemple le MFA annuaire + base.dsn + annuaire.txt
    table = base
    les colonnes de la table = nom, prenom, ville, metier, telephone
    les données à ajouter en "temps réel" sont des boîtes de dialogue chercher_nom, ajouter_nom
  • en début de scène, pour SQL String :
    "select * from base"
  • pour tout sélectionner :
    "SELECT * FROM annuaire.txt"
  • pour trier
    "SELECT * FROM annuaire.txt ORDER BY nom ASC"
    "SELECT * FROM
    annuaire.txt ORDER BY ville ASC"
  • pour chercher
    "SELECT * FROM annuaire.txt WHERE nom ='"+Edittext$( "chercher_nom" )+"'"
  • pour ajouter
    "INSERT INTO annuaire.txt(nom,prenom,ville,metier,telephone) VALUES ('"+Edittext$( "nouveau_nom" )+"','"+Edittext$( "nouveau_prenom" )+"','"+Edittext$( "nouveau_ville" )+"','"+Edittext$( "nouveau_metier" )+"','"+Edittext$( "nouveau_telephone" )+"')"
  • pour supprimer - mais ce n'est pas opérationnel, et je ne sais pas pourquoi -
    "DELETE FROM annuaire.txt WHERE nom='"+Edittext$( "supprimer_nom" )+"'"
  • solution, mais pas satisfaisante, supprimer les données avec le bloc-notes
  • exemple le MFA vegetaux + vegetaux.dsn + vegetaux.csv
    table = vegetaux
    les colonnes de la table = nom, nature, couleur
    les données à ajouter en "temps réel" sont des boîtes de dialogue chercher_aliment, ajouter_aliment, etc...
  • en début de scène, pour SQL String :
    "select * from vegetaux"
  • pour tout sélectionner :
    "SELECT * FROM vegetaux.csv"
  • pour trier
    "SELECT * FROM vegetaux.csv ORDER BY nom ASC"
  • pour chercher
    "SELECT * FROM vegetaux.csv WHERE nom ='"+Edittext$( "chercher_nom" )+"'"
  • pour ajouter
    "INSERT INTO vegetaux.csv(nom,nature,couleur) VALUES ('"+Edittext$( "ajouter_nom" )+"','"+Edittext$( "ajouter_nature" )+"','"+Edittext$( "ajouter_couleur" )+"')"
  • pour supprimer - mais ce n'est pas opérationnel, et je ne sais pas pourquoi -
    "DELETE FROM vegetaux.csv WHERE nom='"+Edittext$( "supprimer_nom" )+"'"
  • solution, mais pas satisfaisante, supprimer les données avec le bloc-notes
  • exemple le MFA vitamines + vitamines.dsn + vitamines.csv
    table = vitamines
    les colonnes de la table = aliments, vitamines, mineraux, oligoelements
    les données à ajouter en "temps réel" sont des boîtes de dialogue chercher_aliment, ajouter_aliment, etc...
  • en début de scène, pour SQL String :
    "select * from vitamines"
  • pour tout sélectionner :
    "SELECT * FROM vitamines.csv"
  • pour trier
    "SELECT * FROM vitamines.csv ORDER BY ALIMENTS ASC"
  • pour chercher
    "SELECT * FROM vitamines.csv WHERE aliments ='"+Edittext$( "chercher_aliment" )+"'"
    "SELECT * FROM
    vitamines.csv WHERE vitamines ='"+Edittext$( "chercher_vitamine" )+"'"
  • pour ajouter
    "INSERT INTO vitamines.csv(aliments,vitamines,mineraux,oligoelements) VALUES ('"+Edittext$( "ajouter_aliment" )+"','"+Edittext$( "ajouter_vitamine" )+"','"+Edittext$( "ajouter_mineraux" )+"','"+Edittext$( "ajouter_oligo" )+"')"
  • pour supprimer - mais ce n'est pas opérationnel, et je ne sais pas pourquoi -
    "DELETE FROM vitamines.csv WHERE aliments='"+Edittext$( "supprimer_aliment" )+"'"
  • solution, mais pas satisfaisante, supprimer les données avec le bloc-notes
 
  • questions en vrac sur le forum
  • dans vitamines.mfa : pour les chercher, obligation d'écrire les vitamines en lettres majuscules
    question : dans une boîte d'édition, même si on tape un texte en lettres minuscules, peut-on "forcer" à ce qu'il apparaisse en lettres majuscules ?
    réponse : pour avoir toujours des majuscules dans une boîte d'édition, Propriétés / Configuration / Misc / Modification de la casse / Passer en majuscule

    quand on cherche une vitamine, il faut l'indiquer complètement, par exemple PP B12 pour afficher PP, si on indique seulement B, B12 ne s'affiche pas
    question : dans la boîte d'édition chercher_vitamine - ou autre recherche -, y a-t-il une possibilité pour palier cet inconvénient
    réponse : avec la commande LIKE

    question : peut-on compléter une base incomplète, par exemple, compléter Vitamines et Minéraux pour l'aliment ail
    réponse : avec la commande UPDATE
  • je me demande s'il n'y a pas un souci avec les commandes DELETE et UPDATE pour CSV ou TXT - contrairement à une base MDB -