Le 14/10/2012 19:19, Pierre Graber a écrit :
> Le 14. 10. 12 18:53, Marc Romano a écrit :
>> Il me semble que la syntaxe exacte devrait être :
>>
>> UPDATE Membres, Ajout
>> SET Membres.IdFiche = Ajout.IdFiche, Membres.MdpFiche = Ajout.MdpFiche
>> WHERE Membres.IdMembre = Ajout.IdMembre
>>
>> En cas de noms de champ identiques entre deux tables, l'utilisation du
>> nom canonique est obligatoire pour lever toute ambiguïté. D'autre part,
>> lorsqu'on utilise UPDATE dans un contexte multi-tables, on doit déclarer
>> les tables utilisées après UPDATE, qu'elles soient cibles ou sources de
>> mise à jour. Ici, l'erreur "table not found" concerne à mon avis la
>> table Ajout, pas la table Membres.
>>
>> Sous une base MySQL, la syntaxe que j'indique fonctionne. Je ne sais pas
>> ce qu'il en est sous HSQL, mais je ne vois pas de raison que ça ne
>> marche pas.
>>
>> Cordialement ;
>>
>> Marc Romano
> Merci Marc,
>
> Ta proposition m'a aussi semblé sensée, mais elle aboutit encore à :
> «Table not found in statement [UPDATE Membres]»
> (c'est moi qui encadre de guillemets).
>
> Cordialement,
>
> Pierre
>
> --
> *Pierre Graber*
> Enseignant
> CH-2022 Bevaix
> <http://pcpg.net>
En fait, j'ai l'impression (à confirmer) que le moteur HSQL ne prend pas
en charge l'utilisation d'UPDATE en multi-tables. Je viens de faire une
recherche sur la doc en ligne de ce moteur, les explications données
pour UPDATE ne concernent qu'une utilisation mono-table.

En revanche, il semble qu'il permettrait (sous réserves) l'utilisation
de MERGE, mais outre le fait que ce n'est pas une instruction SQL très
pratique, un petit essai que je viens de faire sur un petit bout de base
monté sous LibO 3.6.1 me renvoie une erreur "unexpected token MERGE", ce
qui semble vouloir dire que le moteur implanté sous LibO ne prévoit pas
cette instruction.

Là, on coince... Il faudrait avoir quelques informations de la part des
développeurs, pour savoir exactement ce qui est implanté comme
fonctionnalités. J'avoue que je n'avais jamais tenté ce genre de mise à
jour sous HSQL, utilisant prioritairement des bases MySQL interfacées
avec LibO.

Désolé de ne pouvoir t'aider sur ce coup-ci. Je vais chercher une
solution de contournement, mais sans promesse de résultat !

Cordialement ;
Marc


-- 
Envoyez un mail à users+h...@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

Répondre à