Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


Bonjour, Henri ;


Le 07/07/2012 00:26, Henri Boyet a écrit :

En fait, lors de mes essais, je ne faisais pas forcément de
copier/coller de Calc dans Base. Je ne me souviens plus pourquoi
j'avais abandonné cette méthode, il me semble que c'était une question
de formats des champs. J'avais essayé une autre démarche : créer une
nouvelle base, se connecter à une base existante, tableur. C'est sans
doute là que je n'avais pas de clé primaire. À creuser.

Cet élément donne, me semble-t-il, l'explication à plusieurs de tes
problèmes. Ceux-ci d'abord, mon interprétation ensuite :

(1) Je constate que je me suis mal exprimé. Je ne parlais pas
d'échanges entre des bases de types différents mais entre des bases de
mêmes structures. Supposons que la même commune a un emplacement
différent dans la table «T_Commune» de deux utilisateurs différents.
Si j'importe des enregistrements de la table «T_Eleves», le champ
«Commune» ne contient pas le nom de la commune mais un index vers la
ligne de la table «T_Communes». Que se passe-t-il puisque l'index ne
pointe plus vers la bonne valeur ? Je ne sais pas si je suis clair…

(2) Ce n'était pas un problème de relations. Il me semble me rappeler
que le problème principal était de rajouter un champ. Mais je
n'arrivais pas non plus à corriger des formats de champs qui ne
s'étaient pas importés correctement, en particulier les booléens.

En fait, tu ne crées pas de "nouvelle" base de données avec la méthode
que tu utilises. Tu crées un simple "conteneur" qui va conserver les
paramètres de connexion à la "vraie" base de données et les objets
spécifiques que tu pourras y rajouter (requêtes, formulaires, rapports).
Mais les données elles-mêmes ainsi que la structure de la base restent
conservées dans la source originelle, c'est-à-dire le classeur dans ton cas.

Base fonctionne de la même façon pour la connexion vers n'importe quelle
source externe, que ce soit un classeur, une base MySQL ou autre. C'est
assez simple à vérifier : il suffit de regarder la taille du fichier odb
entre une base "native" et une base externe. Elle varie
considérablement, et c'esr encore plus net lorsque les données sont les
mêmes, avec une base sous HSQL et les mêmes données sous MySQL par
exemple. C'est aussi facile à vérifier autrement : fais une modification
dans le classeur d'origine et réouvre la base : la modification sera
apparente dans Base. Les données ne sont donc pas conservées dans Base,
celle-ci se comporte comme une simple "fenêtre" vers les données d'origine.

Ça peut paraître enquiquinant selon le problème que tu as à résoudre,
mais en réalité c'est très bien comme ça. C'est même ça qui va permettre
de partager une base de données entre plusieurs utilisateurs, et de
permettre à chacun d'utiliser les données selon ses besoins propres : le
"conteneur" odb pourra être personnel à chacun mais les données seront
les mêmes pour tous. Pédagogiquement (je suis très égoïste...), ça ouvre
de très intéressantes possibilités.

Ça veut dire aussi que selon le type de la source, tu pourras ou ne
pourras pas modifier la structure de la base. Ce sera possible par
exemple sur une base MySQL (en fonction des droits utilisateurs sur la
base et depuis peu, il me semble, parce que je me souviens que ce
n'était pas possible sous OpenOffice), mais pas une une base de type
"classeur", qui ne possède pas les caractéristiques (clé primaire,
nature de champ, etc.) d'une table de base de données.

AMHA, la connexion vers une feuille de calcul ne doit pas être retenue
lorsqu'on veut construire une base de données relationnelle. Si dans les
deux outils on parle de "table", la nature même de ces tables, leurs
caractéristiques propres sont trop éloignées l'une de l'autre pour
qu'une transition complète soit possible. La possibilité de transférer
des tables de Calc vers Base est très intéressante, par exemple pour
récupérer de gros volumes de données d'une autre source non directement
compatible, ou si on veut "manipuler cette source différemment de ce que
permet la version originelle. Dans un tel cas, exporter les données
d'origine au format texte, les importer dans Calc puis dans Base,
représente un gain de temps considérable par rapport à la saisie ex
nihilo de ces mêmes données.

La possibilité de se connecter directement sur une feuille de calcul est
aussi intéressante, mais dans des cas particulier : je veux faire par
exemple un publipostage à partie d'une liste d'adresses saisies dans un
classeur. Je crée un "conteneur" Base lié à la feuille de calcul et
j'utilise ce fichier odb comme source de données dans Writer. Pas de
problème, c'est ultra-rapide et ça marche très bien. Mais à partir du
moment où je veux pouvoir manipuler les adresses (quelles qu'en soient
les raisons, la simple connexion vers la table ne suffit plus, il faut
créer une "vraie" base relationnelle.


J'avais acheté un livre qu'on m'avait recommandé, "Pratique de MySQL
et PHP" mais ça dépassait mes capacités. Est-il possible d'utiliser
MySQL sans PHP ?

Oui, sans aucune difficulté. Il est possible d'installer séparément un
serveur PHP et un serveur MySQL. En fait, installer les deux (plus un
serveur Apache ou IIS) est intéressant (et indispensable) pour ceux qui
veulent créer une base de données accessible via un navigateur. MySQL
fournit le moteur de base de données, Apache (ou IIS) l'accès Web et PHP
l'outil de programmation qui permet de faire ce que l'on veut.

C'est aussi intéressant (et indispensable) lorsqu'on veut administrer sa
base de données via la célèbre interface PHPMyAdmin. Mais on peut très
bien administrer une base MySQL avec des outils spécifiques comme
HeidiSQL ou MyDB Studio (que j'utilisais il y a encore deux ans et ai
abandonné au profit du premier cité, libre et aussi efficace une fois
qu'on l'a pris en main).

...
Si ces quelques indications peuvent t'aider, j'en suis heureux.

Cordialement ;
Marc
C'est un bon début, j'appellerai sans doute au secours en août.

Encore merci,

Henri
Pas de problème, il y aura toujours quelqu'un au bout du fil.

Cordialement ;
Marc

-- 
Envoyez un mail à users+help@fr.libreoffice.org pour savoir comment vous désinscrire
Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être 
supprimés

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.