# Environnements de dveloppement > Autres EDI > Powerbuilder >  Les buffers de PB

## bath

Bonjour  tous,
  PB utilise un certain nombre de buffers pour stocker ses donnes en mmoire
et maintenir une synchronisation avec la datawindow.
  Je me pose un certain nombre de questions sur le fonctionnement de ces buffers :*1) Original buffer*
       Ce buffer contient les donnes d'origine (obtenues par le select de la
       base de donnes).
Question : ces donnes restent-elles intactes pendant tout le 
     fonctionnement de la datawindow ?
*2) Delete buffer*
      Ce buffer contient les donnes qui ont t supprimes de la datawindow
*3) Filter buffer*
     Ce buffer contient les donnes filtes de la datawindow.
Question : lorsqu'on applique un filtre sur la datawindow, est-ce qu'un ordre sql est de nouveau envoy  la base de donnes ? ou alors le filtrage de donnes s'opre en mmoire (sur les donnes dj slectionnes auparavant) ?
*4) Primary buffer*
     Contient les donnes courantes sur la datawindow.
Question : lorsqu'on fait un tri sur les donnes, est-ce qu'un ordre sql est envoy sur la base de donnes ?
Lorsqu'on effectue un certain nombre de modifications sur une datawindow (delete, modify...) et qu'on fait un cancel au lieu d'un update, comment pb 
synchronise-t-il la datawindow avec ses buffers ?

Lorsque je fais un cancel aprs plusieurs modifications, est-ce que j'annule toutes les modifications ou alors c'est seulement la dernire qui est modifie ?

L'existence de tous ces buffers ne pose-t-elle  pas des problme de performance ? (ressource mmoire notamment si mon select me renvoie beaucoup de donnes ?)

Merci d'avance

----------


## shahin

> 1)oraginal buffer:
>        ce buffer contient les donnnes d'origine (obtenues par le select de la
>        base de donnes)
>      question: ces donnes restent-elles intact pendant tout le 
>      fonctionnement de la datawindow?


Oui, d'o son nom. C'est le current primary buffer qui est modifi.



> 3)filter buffer
>     question: lorsqu'on applique un filtre sur la datawindow est-ce qu'un ordre 
>     sql est de nouveau envoy  la based e donnes? ou alors le filtrage de
>     donnes s'opre en mmoire (sur les donnes dj slectionnes 
>       auparavant) ?


Deuxime rponse : pas d'ordres SQL, le tri est effectu localement.




> question: lorsqu'on fait un tri sur les donnes est-ce qu'on ordre sql est envoy sur la base de donnes?


Non




> lorsqu'on effectue un certain nombre de modification sur une datawindow (delete, modify...) et qu'on fait un cancel au lieu d'un update comment pb 
> synchronise t-il la datawindow avec ses buffers?


"cancel" n'est pas une mthode de l'objet datawindow. En gnral, quand l'utilisateur dcide de ne rien modifier, il ferme la fentre, et il n'y a rien  synchoniser




> lorsque je fais un cancel aprs plusieurs modifications est ce que j'annule toutes les modifications ou alors c'est seulement la dernire qui est modifie?


Une diffrence majeue avec Access, est que tant que tu n'excute pas dw.update(), rien n'est envoy sur la base de donnes.




> l'existence de tous ces buffers ne pose -elle  pas des problme de performance? (ressource mmoire notamment si mon select me renvoie bcoup de donnes?)


 Je te rappelle que quand tu fais un retrieve(), les buffer "delete" et "filter" sont vides.
Globalement, un programme PB consomme moins de mmoire qu'un programme Java ou crit avec la plateforme .net (C# ou autre).

Enfin, c'est un faux problme. C'est comme si tu disais : "climatisation, airbag, autoradio, tous ces accessoires alourdissent ma voiture, diminuent ses performances et augmentent sa consommation d'essence"




> merci d'avance


De rien, ce fut un plaisir. ::D:

----------

