PB à toute heure et à tout moment. (à parcourir avec modération)

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 11-12-2007 13:17:13

poche  
Membre Power Geek
Date d'inscription: 19-12-2006
Messages: 282
Pépites: 2,392
Banque: 0

[RESOLU] Datastore

Bonjour,

Voilà, j'ai mis ceci dans l'open de la fenêtre :

Code: pb

This.ids_impr_plan = Create n_datastore
This.ids_impr_plan.DataObject =  "dw_impr_plan" 
This.ids_impr_plan.settransobject( SQLCA )
This.ids_impr_plan.ShareData( This.dw_saisie )

dw_impr_plan et dw_saisie ont exctement les même champs et ont le même type de colonne.

Plus tard je met à jour dw_saisie et le problème est que lorsque je fais un rowcount sur cette datastore, ça me renvoi 0 alors quelle devrait me renvoyer le nombre de ligne de dw_saisie. Pourquoi??

Dernière modification par poche (11-12-2007 14:43:35)

Hors ligne

 

#2 11-12-2007 13:21:14

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4659
Pépites: 945
Banque: 2,147,483,647
Site web

Re: [RESOLU] Datastore

poche a écrit:

Bonjour,

Voilà, j'ai mis ceci dans l'open de la fenêtre :

Code:

This.ids_impr_plan = Create n_datastore
This.ids_impr_plan.DataObject =  "dw_impr_plan" 
This.ids_impr_plan.settransobject( SQLCA )
This.ids_impr_plan.ShareData( This.dw_saisie )

dw_impr_plan et dw_saisie ont exctement les même champs et ont le même type de colonne.

Plus tard je met à jour dw_saisie et le problème est que lorsque je fais un rowcount sur cette datastore, ça me renvoi 0 alors quelle devrait me renvoyer le nombre de ligne de dw_saisie. Pourquoi??

t'es sure que c'est pas plutot 

dw_saisie.ShareData(ids_impr_plan)


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#3 11-12-2007 13:33:58

poche  
Membre Power Geek
Date d'inscription: 19-12-2006
Messages: 282
Pépites: 2,392
Banque: 0

Re: [RESOLU] Datastore

dans un sens ou dans l'autre, rowcount = 0!!!!

Hors ligne

 

#4 11-12-2007 13:44:21

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4659
Pépites: 945
Banque: 2,147,483,647
Site web

Re: [RESOLU] Datastore

Code: pb

This.ids_impr_plan = Create n_datastore
This.ids_impr_plan.DataObject =  "dw_impr_plan" 
This.ids_impr_plan.settransobject( SQLCA )


tu as testé le code retour du sqlca lors du settransobject ?
et pourquoi ne pas essayé plutot  ids_impr_plan = Create datastore  ?


montres nous les 2 datawindows...


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#5 11-12-2007 13:46:49

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Datastore

Bonjour,

Je pense qu'il y a une incompréhension au niveau de la fonction ShareData.

Le bout de code que tu nous a présenté provient de l'évenement open d'une de tes fenêtres.

Je suppose qu'a ce moment là, dw_saisie ne contient aucune donnée et donc

Code: pb

dw_saisie.ShareData(ids_impr_plan)

n'aura quasiment aucun effet (puisque rien a copier)


Ensuite les modifications que tu apporteras à dw_saisie n'auront aucun impact direct sur ids_impr_plan (ShareData ne crée pas un lien entre ces deux objets).

Donc au final tu te retrouveras avec la datastore que tu avais initialisé dans ton evenement open, donc une datastore vide. Il faudra donc penser à faire un ShareData à chaque fois que tu voudras récupérer les données de ta datawindow


Que les grands manitous du PB me corrigent si j'ai fait une erreur sur cette description du fonctionnement de la fonction ShareData

Dernière modification par Nephtis (11-12-2007 13:47:59)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#6 11-12-2007 13:51:50

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2487
Pépites: 88
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Datastore

Euuh....excuse-moi Nephtis, mais le principe du sharedata est de partager les buffers de données entre une datawindow maître, et une ou plusieurs autres.
Toute modification d'un buffer d'une des datawindow "liée" par le sharedata (par retrieve, insertion, suppression ou modification de donnée) est donc automatiquement
répercutée dans les autres (sauf si présence d'un sharedataoff dans le code)


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#7 11-12-2007 14:05:35

poche  
Membre Power Geek
Date d'inscription: 19-12-2006
Messages: 282
Pépites: 2,392
Banque: 0

Re: [RESOLU] Datastore

Nephtis a écrit:

Bonjour,

Je pense qu'il y a une incompréhension au niveau de la fonction ShareData.

Le bout de code que tu nous a présenté provient de l'évenement open d'une de tes fenêtres.

Je suppose qu'a ce moment là, dw_saisie ne contient aucune donnée et donc

Code: pb

dw_saisie.ShareData(ids_impr_plan)

n'aura quasiment aucun effet (puisque rien a copier)


Ensuite les modifications que tu apporteras à dw_saisie n'auront aucun impact direct sur ids_impr_plan (ShareData ne crée pas un lien entre ces deux objets).

Donc au final tu te retrouveras avec la datastore que tu avais initialisé dans ton evenement open, donc une datastore vide. Il faudra donc penser à faire un ShareData à chaque fois que tu voudras récupérer les données de ta datawindow


Que les grands manitous du PB me corrigent si j'ai fait une erreur sur cette description du fonctionnement de la fonction ShareData

ça marche lorsque je fais un sharedata avant mais je ne comprends pas pourquoi??
Je suis d'accord avec foon...

Hors ligne

 

#8 11-12-2007 14:35:50

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Datastore

foon a écrit:

Euuh....excuse-moi Nephtis, mais le principe du sharedata est de partager les buffers de données entre une datawindow maître, et une ou plusieurs autres.
Toute modification d'un buffer d'une des datawindow "liée" par le sharedata (par retrieve, insertion, suppression ou modification de donnée) est donc automatiquement
répercutée dans les autres (sauf si présence d'un sharedataoff dans le code)

Au temps pour moi j'en apprends toujours à parcourir ces forums (je pensais que c'était juste un bête copié/collé).

En revanche avec le nouveau test de poche (faire un sharedata avant, heu... avant quoi, je suppose avant le rowcount) cela fonctionne

Donc au moment du open de la fenetre le sharedata ne fonctionne pas. As tu testé le code retour de ton sharedata dans l'evenement open?

Dernière modification par Nephtis (11-12-2007 14:38:23)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#9 11-12-2007 14:43:16

poche  
Membre Power Geek
Date d'inscription: 19-12-2006
Messages: 282
Pépites: 2,392
Banque: 0

Re: [RESOLU] Datastore

J'ai trouvé, voilà je faisais le sharedata dans l'open de la fenêtre alors que le dataobject n'était pas encore affecter à la datawindow de réference. Donc j'ai mis ce sharedata plus tard dans l'application et je ne le fais qu'une fois, ça fonctionne très bien.
Merci à tous.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22