QandA.htmTEXTBlWd _}_} Questions and Answers

Back to index


Responses to user questions.

Why do I get a search on a bool field==false reported as ambigous?

This is most likely with Metrowerks CodeWarrior. The default project settings for their precompiled headers has bool support turned off. In that case, they #define bool as 0 which causes ambiguities, unlike our own bool. Note that you will have to Remove Objects on the precompiled header project to force it to recompile - just turning on bool in the C++ Language panel doesn't force a rebuild for some reason.

>Does OOFile support embedding several distinct flat-file databases in a single disk file?

Yes. Both models are supported - multiple databases in one container file and multiple database/index files. The latter is more efficient in some circumstances. However our (c-tree's) container file support is very robust. Files can be simply copied between Windows, Mac, Unix etc. Space is re-used very efficiently and if you are not using variable-length fields, re-use is 100%. This has been tested in a hospital phone directory where 3,500 records are deleted and re-created every night!

>QNX does not support virtual memory. Is this a requirement for OOFile ?

No. I know a lot of OODBMS use virtual memory, particularly the Unix ones, so this was a good question. (There's an interesting discussion of the various techniques in the Oct. 95 Journal of Object-Oriented Programming.)

OOFILE uses operator overloading techniques, for related object expressions such as

People->Visits->Date;

Lazy instantiation of blobs and related objects is performed - they are only read into memory when accessed. Writing is cached. If you had several Visits updated on the above People object, then they would all be written by People->saveRecord(). On our web site, ooftst06 shows an example of this.

One of the areas we're working on is more programmer choice. Blobs and related objects are currently also stored in separate records, which doesn't map well to all application profiles. On a per-class basis, we intend to allow you to specify the storage policy. Thus, if you have a need to load all child objects in one big hit on the disk, a parent object would physically contain its children in a variable length record.


Back to index


FFZDID*L D,$TZR QandA.htmPartSIT!PartSIT!uJ ["J)%TRHBId -TZQ )QP"DQ$"I*ffT)Q"!RB% EF((HERKJJ$$IH"@2&#7df:6  w%w%w%    w%w%w%  "a/Q)  w%w%w%1  2  w%w%w%9  :  w%w%w%E  F  w%w%w%}   w%w%w%   w%w%w%  w%w%w%   w%w%w%   w%w%w% (  w%w%w%-  .  w%w%w%1    w%w%w%!  "  w%w%w%& o  w%w%w%t  u  w%w%w%x  V  w%w%w%Y    w%w%w%    w%w%w%    w%w%w%    w%w%w%    w%w%w%    w%w%w%    w%w%w%    w%w%w%     w%w%w%  FFZ0rZstylsoup&885922 2