On 5/5/06, Gregory <[EMAIL PROTECTED]> wrote:
I have problem with application running on Tunsgsten E2. Sequence of reading 
records from database makes DBCache fragmentation  and DBCache runs out of 
memory.
In a loop I read data from several tables. I use DmGetRecord to access records. 
After copying data from record I release it immediately with DmReleaseRecord.
On other devices (Tungsten T5, TX) application works fine.

I try to access directly to palm databases via VFS layer.
I can find reference to hidden volume, and locate db. file on it.
For example if table name is "DBCustomers" then file path is something like: 
"/PALM_DM/DBCustomers_E000000"

I can open this file with vfsModeRead flag , if I try  vfsModeReadWrite mode I 
got vfsErrFilePermissionDenied error.
I try to call VFSFileDBGetRecord() but it fails and returns dmErrNotRecordDB.

How can I read records from such database? Is there any way to prevent memory 
in DBCache from running out?

The databases in the NVFS layer aren't stored in PDB format, but in a
different format that allows for more efficient updates.  This format
isn't documented, and it has changed between versions of Palm OS that
implement NVFS.

If you close and reopen the database, it should free them from the
cache.  Alas, the E2 uses Palm OS 4.5.7 or 4.5.8, which was one of the
last versions with generation 1 NVFS code.  The gen two code in the
TX/Z22 is a bit more reliable in dealing with low memory situations.

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

Reply via email to