[ANNOUNCE:] CB++ Database Access Library for C/C++

From: Bernhard Strassl <bernhard_at_ani.univie.ac.at>
Date: 5 Oct 1993 13:21:02 GMT
Message-ID: <28rsbu$in_at_infosrv.edvz.univie.ac.at>


Here is a very first release of the CB++ library. It is available on ftp.x.org in the /contrib directory (I know, it is not UI-related stuff but as a UI fellow I'm used to uploading there, it is only 50K...)

Below you find a copy of the README file.

-bernhard


CB++ (CommonBase Database Access Library for C/C++)


This library was written in 1989 as a basis for storing C++ objects in a relational database. The development of such a system was stopped in 1990 because of problems with the MS-DOS environment used in this time. My involvement in various user interface projects here in the institute and otherwhere made it sleep until last week. When reading comp.databases news I saw some interrest in a library for database access and after posting a followup to a related article I got a lot of responses.

Okay, here is it. It is only the database access layer of the projected object storage system but it has some useful features which are provided by commercial tools out there:

The current release was extracted from our old DOS archives. I remember that it worked stable with the Gupta SQL Server for DOS/MS-Windows and Oracle. The OS/2 SQL server (someone told me that it is another sybase server??) version also worked but had problems with opening files when connected to the database.

The 'plain C' interface worked only with the old MS-DOS cfront/linker which had no different linkage styles for C and C++. It could be fooled with declaring C externals matching to the cfront generated C++ member functions of the SqlMgr class. (file cbinter.h) If someone is interrested it would be easy to provide real C wrapper functions and the init/terminate code which got lost somewhere.

I did some face-lifting to the code to compile with today's C++ (2.1, but it should also be accepted by 3.x) and tested it on a SUN SPARC running SunOS 4.1.3 and Oracle 6.

Bugs:
-The SQL parser should be improved. It currently has the restriction
 that bind variables are only recognized if followed by a comma and/or  a white space character, i.e.

    "insert into items (name, price) values (:string, :int)"  won't work while

    "insert into items (name, price) values ( :string, :int )"  does.
-Since I have done a lot of minor changes the other servers will not
 compile out of the box - have a look at the oracle version.
-Incomplete error handling. CB++ has it's own error codes (needed for
 portability) but the tables aren't initialized in either server code.

Besides this there are currently no more known bugs in CB++ (an I hope you will not report too much of them :-). There are problems with the Oracle library or documentation on the SPARC when binding program variables of type float but they are not specific to CB++ (even the Oracle demo application dumps core when compiled with C++) - any hints are welcome.

Because of the very limited time I can spend on this subject there exists no documentation for CB++ at the moment. Please have a look at the sqlmgr.h file and the sample sources, then you should know everything needed to use it in your application.

I'm planning to write a few pages about usage in programs and about writing server interfaces, if there is something new it will be announced it in comp.databases and comp.lang.c++. Maybe that I'll use the stuff for a commercial project next year. (this would mean to continue work on the object storage system and it would also speed up the improvement of CB++ a lot...)

Please mail me about your expierience with CB++, feel free to ask about everything and please don't flame about the implementation - it was one of our first attempts to write such tools in C++ (provide better solutions instead :-)


Bernhard Strassl              University of Vienna
bernhard_at_ani.univie.ac.at     Dpt. for Applied Computer Science
                              and Information Systems

---------------------------------------------------------------
Received on Tue Oct 05 1993 - 14:21:02 CET

Original text of this message