Powerbuilder pour les completement Geeks !

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 19-02-2009 10:48:34

bdf94  
Membre Power Geek
Date d'inscription: 04-10-2006
Messages: 180
Pépites: 2,231
Banque: 0

1 requête / plusieurs DW

Bonjour,

J'ai une procédure stockée qui insére dans une table temporaire des centaines de lignes.
Sur cette centaine, je voudrais faire plusieurs DW différentes avec des select différents mais sans refaire l'insertion dans cette table temporraire.
Comment faire ?

Exemple :
Donnée de la table temporaire : liste des clients avec leurs noms et prénoms, leurs ages, leurs pays, leurs secteurs d'activité.
DW n° 1 = tous les noms et prénoms des clients
DW n° 2 = le nombre de client par age
DW n° 3 = le nombre de client par pays
DW n° 4 = le nombre de client par secteur d'activité


NB : BDD ASE 12.5 / PB 10.2

Hors ligne

 

#2 19-02-2009 11:38:14

FMolinas  
Membre Geek
Lieu: Lyon
Date d'inscription: 12-06-2007
Messages: 87
Pépites: 97
Banque: 6,435,474,948,567

Re: 1 requête / plusieurs DW

Bonjour,

Comment ta table temporaire est-elle créée ? Ou plus précisément, qu'entends-tu par table temporaire (#table, tempdb..table) ?

Pour ne pas faire que poser des questions, une piste. Je suppose que tes DW sont toutes regroupées dans la même fenêtre, et que tu ne fais pas de déconnexion / reconnexion (voulue ou sur timeout) pendant que la fenêtre est ouverte.
- Code tes DW pour ne faire que des Select sur la table temporaire, sans s'occuper de sa création ou de son alimentation.
- Dans le script Open de ta fenêtre, code en SQL embarqué un create table #table puis exécute la procédure stockée qui remplira la table.
- Les données sont présentes, tu peux utiliser tes DW comme tu veux.
- Dans le script Close, code un drop table #table pour rester propre.
Tout cela fonctionne parce que la table temporaire persiste tout le temps de la session, c'est à dire lusqu'à ce que PB déconnecte.
Tu ne peux pas créer #table dans une procédure stockée, vu que la table disparaît automatiquement quand la procédure se termine.

Pour éviter de coder du SQL embarqué dans du PowerScript, tu peux aussi tenter une table "temporaire permanente" de type "tempdb..table". Elle survit à la fin de session et (le cas échéant) à la fin de la procédure stockée qui l'a créée, tant que tempdb elle-même n'est pas effacée.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22