[Résolu] MAJ de la BDD ok sur un PC mais pas sur un autre

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
pigino
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 17 janv. 2017 08:26

[Résolu] MAJ de la BDD ok sur un PC mais pas sur un autre

Message par pigino »

Bonjour,

j'ai un soucis avec la mise à jour d'une base de données. Je m'explique, j'ai créé une base de données avec LibreOffice Base que j'ai mis sur un serveur commun (pour l'exemple, il y a une seule table avec une seule donnée).

J'ai ensuite créé le formulaire joint avec calc qui récupère la valeur, met à jour avec la nouvelle valeur entrée dans le champ texte. Le fichier formulaire est sur 2 PC, en local et ces 2 PC accèdent au réseau. La mise à jour fonctionne bien sur un des PC, et ne fonctionne pas sur l'autre. Aucune erreur est affichée sur le PC où cela ne fonctionne pas, et ce PC récupère bien la valeur lorsqu'il clique sur le premier bouton. Les 2 utilisateurs ne se connectent pas en même temps à la base (la base serait de toute façon en lecture seule pour le second).
C'est peut-etre impossible avec une base intégré HSQLDB d'attaquer avec plusieurs PC différents ?
Je sais qu'il existe un moteur HSQLDB pour attaquer à plusieurs utilisateurs mais je ne peux pas l'utiliser, ainsi que d'autres BDD. Je dois me debrouiller avec mes outils (donc libreOffice seulement)

Je vous joints les 2 fichiers que j'utilise, et je vous remercie par avance de vos analyses.

Bien cordialement
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par pigino le 06 févr. 2018 13:24, modifié 1 fois.
LibreOffice 5.4.7.2 (par obligation) sous Windows 7 Entreprise
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: MAJ de la BDD fonctionne sur un PC mais pas sur un autre

Message par Piaf »

Bonsoir
Je n'ai pas de serveur à disposition, une éventuelle solution à tester sans que la base ne soit enregistrée.

Code : Tout sélectionner

Option Explicit
Sub Main(oEv as Object)
Dim dbContexte as Object, maSource as Object, oForm as Object, maConnexion as Object, maRequete as Object, Resultat as Object
Dim cheminBdd as String, strSQL as String, text1 as Object, sQueryString as String
	cheminBdd = convertToURL("Chemin de la basedeDonnées")
	dbContexte = CreateUnoService("com.sun.star.sdb.DatabaseContext")
	maSource = dbContexte.getByName(cheminBdd)
	oForm = oEv.Source.Model.Parent
	Text1 = oForm.getByName("text1")
	maConnexion = maSource.getConnection("", "")
	maRequete = maConnexion.createStatement()
	Select Case oEv.Source.Model.Label
		Case "Remonter valeur"
			sQueryString = "SELECT ""Notes"" FROM ""Plantes"" WHERE ""ID"" = 1"
			Resultat = maRequete.executeQuery(sQueryString)
			With Resultat
				.Next
				Text1.Text = .Columns.getByName("Notes").String
			End With	
		Case "Modifier valeur"
			sQueryString = "UPDATE ""Plantes"" SET ""Notes""='" & text1.text & "' WHERE ""ID""='1'"
			maRequete.executeUpdate(sQueryString)
	End Select
	maConnexion.close
	maConnexion.dispose	
End Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
pigino
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 17 janv. 2017 08:26

Re: MAJ de la BDD fonctionne sur un PC mais pas sur un autre

Message par pigino »

C'est une bonne idée, nous avons tester et nous avons les mêmes résultats, j'arrive à modifier la valeur, ma collègue arrive à récupérer la valeur que j'ai rentré depuis son poste et la modifie (pas d'erreur), elle clique ensuite sur "Remonter Valeur" et remonte bien la valeur qu'elle a rentré. Mais quand je vais directement voir en BDD ou que je relance le formulaire de mon côté, ça n'a pas fonctionné et c'est toujours ma valeur qui est renseigné.

Pour information j'ai essayé de créer plusieurs utilisateurs également, avec toujours les mêmes résultats.
LibreOffice 5.4.7.2 (par obligation) sous Windows 7 Entreprise
pigino
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 17 janv. 2017 08:26

[Résolu]MAJ de la BDD fonctionne sur un PC mais pas sur un a

Message par pigino »


La modération vous a écrit: :alerte: Merci de ne pas poster plusieurs messages à la suite !
Si vous devez ajouter un complément d'information, le bouton "Editer" à la droite du message permet d'y remédier.

En attendant une prochaine réponse, vous pouvez participer également en répondant à d'autres questions sur notre forum.

En complément, j'ai testé depuis 2 autres ordinateurs sur le réseau. La modification a marché sur un des PC la premières fois. Puis impossible sur aucun des 2 PC (j'ai supprimé la base, refait une neuve, redémarrer les ordinateurs, rien n'y a fait).
Je suis revenu sur mon poste et la modification s'est faite instantanément ...

Ma version de Libo est la 5.0.6.3.0 et la version des autres PC est la 5.2.7.2 (cela peut jouer ?)
Le JRE installé sur mon poste est le 1.7.0_51, celui installé sur le poste de ma collègue était le 1.6, et elle a installé le 1.7.0_51 sans amélioration. On a également essayer d'avoir les mêmes paramètres partout sur Libo mais cela reste pareil, elle peut faire un SELECT mais l'UPDATE ne se fait pas, alors que sur mon poste, il se fait tout le temps.
 Ajout : Edit du 06/02/2017 : J'ai résolu mon problème en partie en ajoutant juste après la fermeture de maConnexion, maSource.flush. Cela permet a n'importe quel poste de mettre à jour la base de données, par contre, il faut faire un tour chacun, et le poste qui a fait la mise à jour doit fermer tous ses documents LibO pour qu'un autre puisse faire la mise à jour par la suite 
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 5.4.7.2 (par obligation) sous Windows 7 Entreprise