mol wrote:I'm still using dbfs and browse control. I think it should always be updated.
I remember Roberto words, where he turned back from words this control is obsolete.
Great advantage of dbfs is this system is portable.
You can say that sqlite exists, but it hasn't still some types of fields.
As I've explained a couple of times already, the last years I'm mainly using NETIO with excellent results. I use remote procedures, so, all the data handling is done in the server.
Moreover, when I occasionally need to work with local data, I do not use Browse, nor DataGrid.
I use simple grids that are loaded with the required data from dbfs, using constructs like LOCATE FOR... DO WHILE FOUND()... CONTINUE... ENDDO. In some cases, the use of conditional, temporary indexes, is a good technique too.
The grid is automatically updated, after append, delete, and modify operations, or manually (by the user) via a simple [Refresh] button.
IMHO, this is the more efficient and simple way to work, and since the users are habituated to think in 'client/server' way, because the web, there is no problem on that side either.
If I were starting a new GUI library now, I'm pretty sure that I could not include data bound controls in it.
I guess that the only required thing, could be a method, to assign to the grid, a two dimensional array (the recordset) in an efficient, very fast way.
The times are changing... and IMHO the xBase Browse way belongs to the past...
I admit that my decision of tagging browse as obsolete was premature, but, IMHO, sooner or later, that will happen, simply because 'the world' is switching to client/server and because it is a better way to work.
An additional benefit of this approach is the separation between user interface (presentation) and data handling... another 'unavoidable' thing... I can assure you, that this will make your programmer life a lot easier