Kim/all -
I've subclassed a kbmMemTable to manage the recordpointer column in
a Linked List data system; this abstracts the delphi programmer from
having to deal with linked list management issues when
inserting/updating/deleting data from the dataset. The data system
traditionally has been persisted in a binary format, with data
management being handled by loading the data into a pre-defined packed
record type with field type and size definitions.
If existing data is changed, a row offset number that is persisted
based on recno * recordsize = file/row position is used to find the
correct
position in the binary file, and the existing record is overwritten
with the modified record.
If a new record is added, the filepointer is sent to the end of the
file and a new record is appended to the end of the file, in unindexed
order. I'm sure this is all normal flat-file I/O that predates punch
cards; I'd like to find a more elegant way to manage this data in a
multi-user environment, while maintaining the integrity and format of
the legacy flat files.
I'm modifiying a legacy app, attempting to manage multi-user
concurrent access to these binary files, and am wondering if the
combination of kbmMemTable and kbmBinaryStreamFormat can provide a
more elegant solution?
I'd like to be able to insert data without overwriting or appending,
maintaining indexed order. I'd like to maintain concurrency in a
multiuser environment in a fashion as similar to a SQL database as
possible.
How do I more tightly integrate kbmMemTable into this legacy system?
How do I make the kbmMemTable/kbmBinaryStreamFormat components packed
record structure 'aware', or how would I integrate packed record
definitions into a subclassed kbmmemtable? What I/O elegancy is
available using kbm components that could improve upon the legacy file
management approach and hard-coded concurrency management techniques?
Thanks for any answers.
David Keith