Ooops, I stated that last point wrong.

You can only declare a record of size 65K and therefore are limited to 32768
stored indexes per record (if you were to implement 1 lookup table per
record as I have).

Sorry 'bout that.

Brad

"Brad Figler" <[EMAIL PROTECTED]> wrote in message
news:97185@palm-dev-forum...
>
> I guess I left out the fact that I do not need to use the conduit to do
any
> type of syncronization.  The product that we are developing lives on the
> PDA.  For what is worth, I will explain how I do it.  I don't know if this
> can be adapted to work with hotsync.  I have not done too much reading on
> that subject (yet!)
>
> Here is what I did.
>
> I have my own little database header that stores
>     NumberOfRecords
>     NextAvaialableIndex
>
> Both are 0 when the database is created.
> When you add a record, both get incremented.
> After adding 5 records my header is as follows
>     NumberOfRecords = 5
>     NextAvailableIndex = 5.
>
> Whenever I need to delete a record, I store the next available position in
> that record (assuming your record is atleast 2 bytes in size.  You could
> always resize the record if needed).  For example, if I delete the third
> record, my header would be as follows:
>     NumberOfRecords = 5
>     NextAvailableIndex = 2 (zero based).
>
> The records break down as
> Record1 = <data>
> Record2 = <data>
> Record3 = 5                <--- Next available index pointes here.
> Record4 = <data>
> Record5 = <data>
>
> Now, if I delete record 1, my header would be as follows
>     NumberOfRecords = 5
>     NextAvaialbeIndex = 0 (zero based)
>
> The records break down as follows:
> Record1 = 2                <-- Next Avaialbe index points here
> Record2 = <data>
> Record3 = 5
> Record4 = <data>
> Record5 = <data>
>
> Now, when ever I add another record, it goes in the next avaiable index
slot
> and updates the header to point to the index that the *deleted* record
> pointed at.
>
> The obvious trade-off for implementing this is that your database never
> shrinks in size as records are deleted.  However, you can create index
> tables that sort by the record index.  In my app, I create a separate
> database to store the header as well as the index tables that I need (1
> index table per record).  Oh, yeah, one more limitation.  You can only
> support databases with 32,768 records because an actual database can only
> store 65565 and each index is two bytes....
>
> This probably does not help your dilema with the hotsync.  I hope it was
> worth something =)
>
> Brad
>
> "Ron Clabo" <[EMAIL PROTECTED]> wrote in message
news:97084@palm-dev-forum...
> >
> > Brad, thanks for the response!
> >
> > If you use the record index as the *Unique ID* how do you deal with
> > deletions?  I saw that you mentioned that you handle deletions yourself,
> but
> > that leaves me wondering...How?  Do you have need to propogate your
> > deletions through a conduit to a desktop app?  If so, I'd love to know
how
> > you are pulling that off while preserving the index numbers of all you
> > records.
> >
> > -Ron
> >
> >
> >
> > "Brad Figler" <[EMAIL PROTECTED]> wrote in message
> > news:97060@palm-dev-forum...
> > >
> > > I implemented lookup tables so that I can sort my records in multiple
> > orders
> > > without changing the record indexes.  I needed to do this because I
have
> > > relational data that stores the actual record index as a *unique ID*.
> > > Ofcourse,  I have to handle adding, inserting, and deleting myself.
> > >
> > > It runs great on my m515 and fixed a problem in my owner draw list
where
> I
> > > was displaying text from a record that was being "looked up" by
> > > DmFindRecordByID() and was causing the display to be very choppy when
> > > scrolling.  The records get looked up lightning fast now (actually
O(log
> > n)
> > > time).
> > >
> > > I would recommend Henk's idea if you are really looking for
performance.
> > >
> > > Brad
> > >
> > >
> > > "Henk Jonas" <[EMAIL PROTECTED]> wrote in message
> > > news:97029@palm-dev-forum...
> > > >
> > > > I did, I stored the unique IDs for 3 different sortings, but I
figured
> > > > out that it was slower to use them than a standart QuickSort. Maybe
it
> > > > would be better not to sort at all, but have a sorted list of
indexes
> as
> > > > a kind of lookup table.
> > > >
> > > > Henk
> > > >
> > > > Ron Clabo wrote:
> > > >
> > > > > Seems like this my be a seldom used aspect of the palm database
> > > > > architecture. Anyone using the sort info block to boost search
> > > performance?
> > > > > Any tips?
> > > > >
> > > > > -Ron
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > >
> >
>
> -------------------------------------------------------------------------
> > > > [EMAIL PROTECTED]
> > www.metaviewsoft.de
> > > >
> > > > <A
> > HREF="http://www.handango.com/PlatformTopSoftware.jsp?authorId=95946";>
> > > > <IMG SRC="http://user.cs.tu-berlin.de/~jonash/werbung.jpg";></A>
> > >
> >
>
> -------------------------------------------------------------------------
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > >
> >
> >
> >
> >
>
>
>
>



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/

Reply via email to