On Tue, 3 Jul 2007, Joost van der Sluis wrote:
> On Tue, 2007-07-03 at 14:13 +0200, Martin Schreiber wrote: > > > I aggree with Michael on this. Besides, last time I looked at your > > > 'TBufDataset' (which is a actually a fork, offcourse) it only > > > implemented blob-fields, on top of the existing TBufDataset. > > > > > > The current TBufDataset also supports blob-fields, in a (in my > > opinion) > > > better way, now. Are there any other changes/additions? > > > > > It is completely rewritten. Buffer organisation is not a linked list, > > the > > record pointers are hold in arrays to allow simple record accessing > > by > > locally builded indexes and easy recno handling. String fields are > > stored as > > widestrings, there are no fixed string field sizes in the record > > buffer. It > > has the possibility to work comparable to TClientDataset with a local > > change > > log and data file. > > I had the 'old' tmbufdataset in mind. The TMSEbufDataset is indeed very > different. > > As you can probably remember, the TBufDataset also used a array to store > the record buffers. I changed that because benchmarks showed that the > current solution is much faster. Even if you want to address a record > immediately, as long as you use a bookmark, and not the recno directly. > Which is imho not always a good idea. Recno should never be used for positioning. > But there are no indexes yet, that's completely true. > > What I do like is the idea of storing strings in a > widestring/ansistring. I tried to implement that earlier, but it's not > doable in a Delphi-compatible way. As you said, you don't have that > problem. But it's still something on my whish-list for > sqldb/TDataset/TBufDataset. There must be a solution, without using the > blob-system... I do not think this is a good idea: the amount of memory used for this is a multiple of the classic buffer scheme, the heap will be terribly fragmented. The buffer system is exactly meant to save memory (blobs excepted). > What do you mean with the local change log and data file? Like TClientDataset: the changes to the records (the delta) are kept in a separate index. All can be written to file. It's a briefcase model. Michael. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal