Currently the db lookup controls tries to open the dataset linked to ListSource if is closed at lookup initialization.

The initialization occurs after the control is loaded (streamed) or when a related db property is changed in the control. This behavior can leads to opening the dataset at unpredictable time or even twice (if the programmer opens the dataset after loading of the control). Also it can trigger events like AfterOpen in improper moments, e.g., data structures not initialized.

Removing this feature, that is LCL specific, can have side effects in projects that do not open explicitly the ListSource dataset or closes it when the lookup control is still in use.

Recently two bugs were reported due to this behavior (see http://bugs.freepascal.org/view.php?id=22387 http://bugs.freepascal.org/view.php?id=22337 http://lazarus.freepascal.org/index.php/topic,17355.msg96112.html )

So, removing this feature has the benefits of a cleaner code and better user control when to open the dataset thus avoiding potential bugs and decreased performance. The drawback is that it can affect programs that relies in that behavior although it should be easily fixable and if there's a good moment for such changes is now since 1.0 has already branched.

Luiz

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to