Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!ames!pasteur!ucbvax!hplabs!hpda!hpdslab!hpdsla!nigel From: nigel@hpdsla.HP.COM (nigel clunes) Newsgroups: comp.databases Subject: Re: C/Database Toolchest Question Message-ID: <900001@hpdsla.HP.COM> Date: 16 Feb 89 02:45:48 GMT References: <595MARK@NCSUVM> Organization: HP - Pacific Technology Park Lines: 58 I have purchased the product C/database toolchest and so far I have been impressed with it. It appears to be a complete low level database tool kit. Note, I did say low level (In my case it is what I wanted). You do not get a query language or any of the related features. Those type of features would be implemented on top of the C/database toolchest. Features :- - ISAM front end. - Uses B+ trees. - Variable length keys in the B+ trees. - The only limits, in terms of capacity, I have found are imposed by the OS I am using, not the software. As my OS has very large resource limits, I dought that I will hit any of them. - Clear, well written source. - Easy to port. - Has it own cache system built in for file access. You have full control and access the cache system. I am making heavy use of the cache features and they seem to work fine. It took me a day an a half to port it to a UN*X system. I took so long to do the port because of an error on my part. It would normally take about 2 hours to do the port. I would suggest you buy the source code option (extra $10). The manual is very well written. It assumes no background in databases, therefore the first few chapters can be skipped. If you are planning to port it to a non IBM PC machine, then there are two things to watch (well there were only two in my case). The source code disc codes the complete source. There are multiple copies for some files, each copy is for a different compiler. I chose to use the version for the Microsoft 5.0 C comipler as my base for the port. If you do this, I would suggest that you get a copy of the Microsoft 5.0 C compiler documenation. It helps when you get undefined externals at link time and you have to find an equivalent routine on you system (or write your own). 1. The memory comparsion routine that it uses compares all alphas as upper case. Simple fix, put in your own version of a routine that does not. 2. The move memory routine (copies a block of memory for one location to another) handles overlapping address in the source and destination correctly. Make sure your version does, if not, then write your own. Again this is a minor effort. Well I hope this helps with you. If you have any further questions post them to this base note and I will answer them if I can. It was this "feature" that took me a day and half to track down. Nigel (DropBear) Clunes.