plantage d'Officebase lors de l'enregistrement d'images

J’ai créé une base de données avec un formulaire comportant un champ images.
Lorsque je crée des fiches, j’utilise la table en remplissant tout les champs sauf le champ image.
Puis je passe en mode formulaire pour ajouter les images.
Au début tout se passe bien, puis au bout d’une cinquantaine de fiches enregistrées, mon formulaire refuse d’enregistrer une nouvelle fiche et plante.
Alors toutes les fiches que je viens de compléter sont perdues.

Bonjour

Je suppose que tu utilises le format base par défaut (hsqldb embarqué) qui présente le problème de “tout” charger en mémoire. Dans le cas d’une gestion d’images ceci peut s’avérer un problème, surtout si celles-ci ne sont pas “optimisées” (réduction de leur “poids”).

Une alternative le plus souvent conseillée est de lier les images au lieu de les stocker dans la base. Le procédé est simple et décrit dans cette FAQ.

Le wiki comprend par ailleurs un exemple de gestion par macro de cette fonctionnalité.

Une autre solution est naturellement d’utiliser un autre moteur de base de données et de n’utiliser base que pour se connecter à ce moteur. C’est évidemment plus “lourd” puisqu’il faut alors gérer ce moteur externe.

Cordialement

Effectivement, je pense que c’est la taille des images qui pose problème
Je viens de tester ce procédé avec l’exemple de la FAQ mais je ne vois que les images des enregistrements 1 et 3.Si je change l’URL par le chemin d’un fichier de ma base, l’image ne s’affiche pas.
Je ne dois sans doute pas faire correctement la manipulation.

Comme je suis débutant dans les bases de données, Je regarde plus précisément la documentation.

Je viens de trouver une macro qui permet de faire automatiquement le travail :
https://wiki.documentfoundation.org/Macros/Base/001/fr
Le fichier exemple fourni à l’air de fonctionner, je vais essayer de modifier les champ pour l’adapter à mon besoin.

Je reviens vers vous dès que j’aurai testé

@bernard49 a écrit :

Je viens de trouver une macro qui permet de faire automatiquement le travail

euh… c’est l’exemple que j’ai réalisé et dont je t’avais donné le lien dans ma réponse :slight_smile:

L’inconvénient de cette macro c’est que le chemin est l’adresse complète (donc absolue) du fichier image.
Si je déplace mes fichiers images (par exemple sur un autre ordinateur) les liens ne fonctionneront plus et il faudra tout refaire.

Comme ma base va comporter entre 500 et 1000 fiches . . . ! bonjour le travail.

Ne pourrait-on pas utiliser une adresse relative, ou alors scinder le choix en deux parties :

1 - le chemin du dossier comportant les image.

2- le nom de l’image

et concatener les deux lors du choix de l’image.

Le 1 restant modifiable de manière globale (éventuellement avec une macro ).

Ou alors il faudrait que j’utilise un format de base qui ne charge pas toutes les données en mémoire. Mais comment faire ?

J’avais signalé ce bog sur le site https://bugs.documentfoundation.org/show_bug.cgi?id=123486

J’ai eu une réponse que je vous laisse lire.

L’intérêt c’est que l’on m’a donné un lien vers un document :

http://robert.familiegrosskopf.de/lo_hb_en/External_Images.zip

qui propose une base de données où le lien vers le fichier est un lien relatif, ce qui fait que si je déplace mon fichier de base de données dans un autres dossier, il fonctionne quand même.

La seule précaution à prendre est de déplacer le sous dossier contenant les images dans le même dossier

Je considère donc mon problème comme résolu.

Merci