Article View: comp.sys.ibm.pc
Article #15017Re: Dbase III records from C ?
From: brian
Date: Wed, 31 Dec 1986 15:54
Date: Wed, 31 Dec 1986 15:54
49 lines
3153 bytes
3153 bytes
I have used C-tools from Ashton Tate with Dbase III plus, and the
Lattice C compiler. I found the package unsatisfactory for a couple of
reasons:
Your compiled routines must be pre-loaded BEFORE DBIII starts, and
consequently they remain resident after DBIII terminates.
It is very easy to hang DBIII if you pass an incorrect parameter
(or inappropriate number of parameters) to the C-routines.
I don't think that their memory allocation stuff works as well as
they'd like; following their examples, I had problems with some
trashing of memory when I attempted to do math operations on
array elements. ( I was attempting to multiply the members of one
array by elements of another array, then summing the results).
So, consequently, I rev-engineered the format of .mem files, and passed a
mem-filename to a compiled TURBO program (which I ran from dbaseIII - you
can include parameters in the command, like "run turbo1 data1.mem")
which wrote it's results to a .mem file which I passed back into my
DBaseIII program when the turbo pascal program finished. Seems kludgy, but
it is rock solid, and easily changeable without re-linking everything and
rebooting.
Also, if you want structures of the DbIII records, there was something posted
in net.sources a while back (or was it net.micro.pc?) which gave either
pascal or c source for data structures for DBiii. Something funny? well,
I rev-engineered the formats for dbiii+ enough to do db access from turbo
pascal, and had emulated alot of the functions of dbiii. My routines ran
only slightly faster than dbaseiii+ (for operations that were i/o
intensive), which makes me wonder if the data structures that Ashton Tate
used impede hi-speed performance. Of course, the people doing the commercial
DBIII+ compilers probably do "clever" things, or at least have some "clues"
that we mortals don't. (Come to think of it, I think I had all checking
turned on in the turbo compiler - that easily makes programs slower by
a factor almost equal to 2). Oh well, I didn't mean this to be so long...
brian moran
----
Brian K. Moran brian@mirror.TMC.COM
{mit-eddie, ihnp4!inmet, wjh12, cca, datacube}!mirror!brian
Mirror Systems 2067 Massachusetts Avenue Cambridge, MA, 02140
Telephone: 617-661-0777 extension 141
"Won't somebody tell me, just who and what I did...
Why's this ring on my finger, and who's that screaming kid? "
From "Lost Weekend" by the Beat Farmers
---
Technical Details
Message-ID:
<409500001@prism>Path:
arc1-ca.pugleaf.net!utzoo!mnetor!seismo!husc6!panda!genrad!decvax!ima!mirror!prism!brianReferences:
<455@yetti.UUCP>Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!utzoo!mnetor!seismo!husc6!panda!genrad!decvax!ima!mirror!prism!brian From: brian@prism.UUCP Newsgroups: comp.sys.ibm.pc Subject: Re: Dbase III records from C ? Message-ID: <409500001@prism> Date: Wed, 31-Dec-86 10:54:00 EST Article-I.D.: prism.409500001 Posted: Wed Dec 31 10:54:00 1986 Date-Received: Wed, 31-Dec-86 22:36:17 EST References: <455@yetti.UUCP> Lines: 49 Nf-ID: #R:yetti.UUCP:-45500:prism:409500001:000:2555 Nf-From: prism.UUCP!brian Dec 31 10:54:00 1986