PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Ajout des données d'une requête dans une table
Ajout des données d'une requête dans une table
Iniciado por Fanou, 29,abr. 2020 14:24 - 3 respuestas
Miembro registrado
54 mensajes
Publicado el 29,abril 2020 - 14:24
Bonjour à tous,

Voila mon problème :

Je dispose de 2 bases de données postgres (postgis pour être précis).

Je requête dans la première avec un paramètre (ici un champ saisie) et je veux ajouter le résultat dans une autre bdd postgres, puis visualiser le tout dans une table avec ce code :

REQ_diag.Paramid_sig=MoiMême
SI PAS HExécuteRequête(REQ_diag) ALORS
Erreur("Une erreur est survenue lors de l'exécution de la requête " +ErreurInfo(errMessage))
SINON
Info("Nombre des enregistrement " + HNbEnr(REQ_diag))
lor_diag_provisoire.id_sig=REQ_diag.id_sig
HAjoute(lor_diag_provisoire)
TableAffiche(TABLE_Lor_diag_provisoire)
FIN


J'ai testé la requête, elle s’exécute bien, j'ai même affiché le résultat dans une table alimenté par le requête, tout est OK.

Le problème c'est que le résultat de la requête me renvoie dans la bdd (ici lor_diag_provisoire) que des zéros ou des NULL et me renvoie donc la même chose dans la table alors que je devrai avoir du texte par exemple.

Avez-vous des pistes?

Stéphane
Publicado el 29,abril 2020 - 17:08
Bonjour,

A ce que je peux voir dans le code, c'est que vous initialisez le contenu de lor_diag_provisoire.id_sig au résultat obtenu lors de l'exécution de la requête REQ_diag, mais sans avoir effectué au moins un HLitPremier(REQ_diag).
Il se peut donc, puisqu'il n'y a pas eu lecture d'au moins un enregistrement, que les valeurs retournées soient 'logiques' ?

Cordialement,

Didier
Miembro registrado
4.362 mensajes
Publicado el 29,abril 2020 - 20:36
Bonjour,
Il faut aussi affecter les autres colonnes de la requête, ou alors passer par une variable de type enregistrement.
Dans ton cas tu n'affectes qu'une colonne (id_sig), les autres colonnes du tuple prennent alors leur valeur par défaut

--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
194 mensajes
Publicado el 30,abril 2020 - 15:48
Bonjour

Ce serait plus simple en pur SQL :

INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;


--
Côme, Clairinfo