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
jai fini par trouver la solution pour les
bases CSV et TXT (ce nest que du texte,
créées dans un logiciel comme Excel)
vu que je nai plus Excel, et que jai maintenant LibreOffice Calc, jai refait mes bases avec,
et ça a lair 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 labsence dExcel, et le fait que ça marche
maintenant vient-il de la présence de LibreOffice Calc ?
ou ça na 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 despace / 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 -
|
|
 |
|
|