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
   
  • Le matériel se trouve dans le tutoriel 18_2 - mis à jour - à télécharger - cf. page des téléchargements  -
  • pour chaque MFA, un fichier DSN et un fichier MDB, CSV ou TXT, des images
  • par défaut, quand on crée un fichier DSN, il 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 copier les fichiers téléchargés dans ces répertoires, quand vous lancerez le MFA, il les 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 ""
  • pareil pour l'action Nouvelle image...
    si vous ajoutez l'objet
    Image Active sur une base déjà existante, veiller à ce que l'instruction soit à sa place, comme indiqué sur l'image de droite
  • 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, MDB, et CSV ou TXT, ainsi que les images dans la construction du programme d'installation
    dans les Propriétés du MFA, penser à sélectionner les extensions dans Filtres image / Edition
 
  • exemple les MFA trombinoscope + fichiers dsn + bases de données + images
  • ajout de l'objet Image Active pour les images, celui-ci est lié à la base - cf.. image ci-dessus -
    Bouton EXECUTE SQL : Nouvelle image: ColText$( "ODBC", 5) - la liste des images étant dans la colonne 5
    pour chaque
    Sélection modifiée (Nom, Prénom, ...), une nouvelle image : Nouvelle image: List Select$( "photo" )
  • on a vu la syntaxe des différentes commandes SQL dans les précédents tutoriaux
    dans ce
    MFA, syntaxe de DELETE pour supprimer plusieurs données, par exemple DELETE Nom + Prénom
    avec des données précises
    "DELETE FROM Contacts WHERE Nom = 'CHACORNAC' AND Prénom = 'Dany'"
    en utilisant les boîtes de dialogue
    "DELETE FROM Contacts WHERE Nom='"+Edittext$( "nouveau_nom" )+"' AND Prénom='"+Edittext$( "nouveau_prenom" )+"'"
  • syntaxe de UPDATE
    avec des données précises
    "UPDATE Contacts SET Prénom='Thérèse',Ville='MONTAUBAN' WHERE Nom='CHACORNAC'", c'est-à-dire avec des données précises

    en utilisant les boîtes de dialogue
    UPDATE Nom + Prénom + Ville
    "UPDATE Contacts SET Prénom='"+Edittext$( "nouveau_prenom" )+"',Ville='"+Edittext$( "nouveau_ville" )+"'WHERE Nom='"+Edittext$( "nouveau_nom" )+"'"

    UPDATE Nom + Prénom + Ville + Métier
    "UPDATE Contacts SET Prénom='"+Edittext$( "nouveau_prenom" )+"',Ville='"+Edittext$( "nouveau_ville" )+"',Métier='"+Edittext$( "nouveau_metier" )+"'WHERE Nom='"+Edittext$( "nouveau_nom" )+"'"

    UPDATE Nom + Prénom + Ville + Métier + Photo
    "UPDATE Contacts SET Prénom='"+Edittext$( "nouveau_prenom" )+"',Ville='"+Edittext$( "nouveau_ville" )+"',Métier='"+Edittext$( "nouveau_metier" )+"',Photo='"+Edittext$( "nouveau_image" )+"'WHERE Nom='"+Edittext$( "nouveau_nom" )+"'"
  • question : en cas de doublon d'un même nom, DELETE ou UPDATE supprime ou modifie tous les contacts ayant le même nom
    pour
    DELETE, on peut prévoir de supprimer Nom et Prénom, mais pour UPDATE ?
    réponse : comme pour DELETE, on a 2 valeurs à indiquer, le Nom et le Prénom
    "UPDATE Contacts SET Ville='"+Edittext$( "nouveau_ville" )+"',Métier='"+Edittext$( "nouveau_metier" )+"',Photo='"+Edittext$( "nouveau_image" )+"'WHERE Nom='"+Edittext$( "nouveau_nom" )+"' AND Prénom='"+Edittext$( "nouveau_prenom" )+"'"
 
 
  • questions en vrac sur le forum
  • toutes les listes sont bien affichées, mais rien n'est sélectionné pour que s'affiche l'image correspondant au 1er contact, ou après un tri
    question : comment mettre, d'entrée, en surbrillance la 1ère ligne avec affichage de l'image
    cette possibilité permettrait que s'affiche de suite l'image, quand on cherche un seul élément, sans avoir à cliquer dessus
    réponse : cf.. page Surbrillance

    si le Nom n'est pas complètement indiqué dans la boîte de dialogue
    Chercher
    question : par exemple, comment afficher tous les noms commençant par la lettre A
    réponse : avec la commande LIKE
  • je me demande s'il n'y a pas un souci avec les commandes DELETE et UPDATE pour une base CSV ou TXT - contrairement à une base MDB -