On Thu, 24 Feb 2011, Martin Schreiber wrote:

On Thursday 24 February 2011 10:16:43 michael.vancann...@wisa.be wrote:

But here you implicitly assume that you have a fixed number of bytes per
character. You should always be explicit about such things, since this
is a non-trivial assumption.

I don't understand.

"tmsebufdataset stores string data as UnicodeString instead to use a fixed
record layout."

If you say "fixed record layout", this means you assume that each character
uses the same amount of bytes, and that the size of the string is limited,
otherwise I fail to see how you can have fixed record layout.

I really should learn English, but I fear i am too old for the task...
What I meant:
Original tbufdataset uses a fixed record layout where for every stringfield
memory is reserved to hold the maximum possible amount of bytes of the field.
MSEgui tmsebufdataset has a fixed record layout too but stores a UnicodeString
which actually is a pointer and uses sizeof(pointer) memory space in record
layout.

The only drawback from this system is memory fragmentation for all the
strings. This is the advantage of the TBufDataset.

In one of the forms of our application, the users load up to 200.000 records.
each containing at minimum 3-4 strings (don't ask why..., they just do) with your system, much more memory would be allocated.

As for encoding: if ever the unicode string is finished, encoding issues can be dealt with in
the DB components 'automatically'.

Michael.
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to