|
| 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 |
| |
| |
| | | |
|
| | | | |
| | |
|