[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

EOF (db library) questions

From: Gerrit Van Dyk
Subject: EOF (db library) questions
Date: Fri, 14 Sep 2001 09:02:51 +0200


I am in the process of converting our system (+- 900,000 lines of code) to
GNUstep. Everything compiled without a problem and I must congratulate all
the people on the GNUstep project for an excelent job, well done guys/girls.

I have however a few problems concerning the database library. Our project
used EOF2 and the Database library is using EOF1, so obviously there was a
few changes that we had to make to our project, fortunately all our database
calls is in one database io library, as we are using CTree for a few of our
tables. The applications do not know whether they are interfacing to a SQL
database or to a database like CTree. This made our porting efforts much
easier as only a very limited piece of the system was affected by this.

1) It uses valuesForKeys which is implemented in the database library as
well as in the gnustep base library. This causes a few problems as the
database library uses its own internal getValue methods and not
valueForKey:. The method is implemented as a category, so if you interface
to the database library you lose all the functionality of the valuesForKeys
as it is implemented in the base library. You cannot override valueForKey in
your classes because the database library will never call this.

2) The takeValues:forKeys: method passes an EONull to an object's set
method, if the value in the DB is null, where EOF 2 passed a nil.

3) When an eomodel gets loaded, all the classes that is referenced in the
model needs to exist within the application, so you need to keep different
models for different applications.

4) The database library uses one big file to keep all the entities, where
EOF 2 split these up into a file per entity within an eomodeld folder. EOF 2
then loaded each entity as it was needed.

5) There is 2 null classes EONull in the database library and NSNull in the
base library.

I would like to make the following changes to the database library:

1) Change the EOKeyValueCoding implementation to the NSKeyValueCoding
implementation. This involves removing the methods from the database
2) Pass nil to an object's set method instead of an EONull.
3) Only check the class of an entity once the entity is needed.
4) Create an eomodeld structure for the model file. Keep backwards
compatibility with eomodel files.
5) Remove EONull and replace it with NSNull.

Who is currently working on the database library? 
Can I make changes to the library which will solve some of the above
How would some of the above changes influence other projects?

Gerrit van Dyk
This e-mail is intended only for the use of the individual or entity named
above and may contain information that is confidential and privileged,
proprietary to the company and protected by law. If you are not the intended
recipient, you are hereby notified that any dissemination, distribution or
copying of this e-mail is strictly prohibited. Opinions, conclusions and
other information in this message that do not relate to the official
business of our company shall be understood as neither given nor endorsed by

reply via email to

[Prev in Thread] Current Thread [Next in Thread]