OOFILE Downloads | Purchasing | Press | Services | Company Information | Soapbox | References | F.A.Q. | HOME


If you have a favourite OOFILE question or tip you think should be on these pages please mailto:faq@oofile.com.au

Licensing Questions

Question Answer
What does "Free" mean? Free OOFILE and other products on this website are available under the Mozilla License which places no restrictions on what you do with the source code.
What royalties do you charge?

There are no royalties imposed by us on any currently shipping OOFILE products: the commercial backends or the Open Source products.

We have no plans to change this situation.

The Professional Report Writer (and other forthcoming retail modules) have always been planned to sit on top of an Open Source product which will continue to be enhanced and supported.

Some of these new commercial products may be made available under royalty-based licenses.

Regardlesss of what added-value products appear, anything you commit to using now is not going to change status.

We are also willing to negotiate licensing for special customers.

Are there any 3rd party royalties on OOFILE Professional?

Yes. OOFILE Professional uses Faircom's c-tree Plus and is bound by whatever license restrictions apply. This means with c-tree Plus v6 you can distribute single and multi-user shared-file databases royalty-free but per-site licenses are required for the c-tree Server.

With c-tree Plus v7 onwards, royalties apply to all forms of database. Visit http://www.faircom.com/ for full policies.

As of late 2002, Faircom are not selling version 6 to new clients.

Are there any royalties on OOFILE Personal No. The OOFILE Personal engine allows you to distribute as many applications as you like. You may not republish the source code of the dBase backend or any libraries which directly expose the functions of the dBase backend.


OOFILE General Product Questions

Question Answer
Isn't OOFILE just a Macintosh Product for use with PowerPlant?

This came up recently as a surprising statement from another database vendor (an honest mistake). No, whilst the Macintosh has always been an important platform, OOFILE has for many years been a cross-platform database product, running on all the platforms supported by Faircom's c-tree Plus and able to run our dbase and other backends on even more platforms.

OOFILE is written with a conservative use of c++ features and even allows you to tailor out features such as exceptions and RTTI to work on legacy compilers.

The only parts of OOFILE that are specific to a given framework are the report-writer's preview and edit windows and the GUI forms interfaces. These have been shipping for a number of years with PowerPlant and MFC versions, using identical API's so your application code just recompiles.

The preview and printing engine of the report-writer uses plain Carbon or Win32 calls, not even requiring those frameworks. Some portions of the RTF renderer use native Carbon or Win32 calls (or the FreeImage library under Windows) for images included in reports.

The rest of OOFILE is platform-neutral. This includes most of the RTF rendering, the HTML, XML and text reports.

Why would I use OOFILE on top of c-tree Plus® and FairCom Server®, instead of the FairCom API alone?

Database perspective

If you do simple table-based access, don't want any of the OOFILE front end features and have very simple iterative data processing then you can probably get by without OOFILE.

It will be a bit harder to program your initial database setup and data access but provided these are very fixedschemae and your needs are simple, you should be OK. OOFILE makes it much easier to declare your database and operate on it than using the raw c-tree Plus API

Application Development perspective

OOFILE adds the forms interface, report-writer and graphing frameworks to let you concentrate on your business logic.

Does OOFILE support ODBC®? OOFILE does via the Faircom ODBC driver. OOFILE writes standard schema information to the c-tree Plus files it creates and we have verified using MS Query™ that you can access this data via the ODBC driver.
Are you ever going to support SQL Database (insert your favourite server name here)?

That depends on our Open Source contributors and clients. The OOFILE database backend architecture is factored out to allow us to support SQL databases and we have some in-house design documents as to the issues concerned. We'd love to see an Open Source initiative to support MySQL with the OOFILE API. If a commercial client requests a port of OOFILE to front-end SQL Server® we have the experience to do so, it just hasn't been demanded.

Frankly, once most people look at the prices of Faircom Server and the performance (eg: 200 million record databases) they are happy with Faircom Server and our existing professional backend.

OOFILE Database SDK Questions

Question Answer
Should I use DECLARE_CLASS or the OOFILE_METHODS style to declare my persistent tables and why is there a difference?

The original macro style (eg: test01) was intended to make it as easy as possible for people to get started was:


After more experience with various users, we realised it confused some people and also broke class browsers.

Using the style below (eg: test19) means all class browsers can see OOFILE classes.

class someClass : public dbTable {


Why does OOFILE require you to declare tables before the main() function?

It doesn't.

Many of our samples show that technique because it is easy for writing little utility programs (some users toss together quick c++ programs in OOFILE the way other people write SQL queries).

The only requirement is that the dbConnect object is created before the dbTables it contains, so they can automatically link to their connection.


XML Questions

Question Answer
Are you going to update expatpp to match the SourceForge version, since 1.2?

We have released a beta of expatpp updated to work with expat v1.95.6 which will be released in early 2003. It is currently being used on Windows, Mac (Classic and OS/X) and PocketPC but hasn't been fully expanded for all the new expat features.

It is robust and has been used heavily for a range of projects on those platforms for 6 months.

Do you have any classes to make it easier to write XML?

Yes. oofTagMaker

The utility classes in OOFILE can be used with just inclusion of oofXML.cpp, oofString.cpp and oofArray.cpp in your project.

How can I determine the position of an element in the documents hierarchy? The expatppNesting subclass in expatpp has a brief essay now describing how it helps solve this problem.