Salut,

J'ai un problème, j'ai un Kbmmemtable branché sur un Datasource branché sur un DBGrid....
Une Base de données Firebird.

lorsque je charge ma Table mémoire je fait comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
Transaction.StartTransaction;
UIBDataSet.SQL.Text := 'SELECT * FROM TOTO';
UIBDataSet.Open;
KBM.DisableControls;
KBM.AfterScroll := NIL;
KBM.LoadFromDataSet(DM_XPLAN.UIBDataSet, [mtcpoStructure]);
UIBDataSet.Close;
KBM.AfterScroll := KBMAfterScroll;
KBM.EnableControls;
Mon select me ramène 3000 Engs, le LoadFromDataSet met 3 secondes à charger.... très long !

J'avais cru comprendre que le DisableControls permettait d’empêcher le refresh dans les composants branchés sur la Table Mémoire...

Avec le Code qui suit, en mettant le Enabled False / True sur mon DBGRID au lieu d'utiliser DisabledControls / EnabledControls ...le LoadFromDataSet met 1/2 seconde pour charger la Requete .......

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
Transaction.StartTransaction;
UIBDataSet.SQL.Text := 'SELECT * FROM TOTO';
UIBDataSet.Open;
DBGRID.Enabled := False;
KBM.AfterScroll := NIL;
KBM.LoadFromDataSet(DM_XPLAN.UIBDataSet, [mtcpoStructure]);
UIBDataSet.Close;
KBM.AfterScroll := KBMAfterScroll;
DBGRID.Enabled := True;
Si quelqu'un avait une explication ....