Path: utzoo!attcan!utgpu!watmath!xenitec!timk From: timk@xenitec.on.ca (Tim Kuehn) Newsgroups: comp.databases Subject: Re: Moving to the Unix environment from Clipper and MS-DOeSn't. Summary: Foxbase/+ under SCO Xenix/Unix Message-ID: <1989Oct16.171303.25642@xenitec.on.ca> Date: 16 Oct 89 17:13:03 GMT References: <5809@decvax.dec.com> <5796@tank.uchicago.edu> <226@labii.UUCP> Reply-To: timk@xenitec.UUCP (Tim Kuehn) Organization: TDK Consulting Services Lines: 88 In article <226@labii.UUCP> shevett@labii.UUCP (Dave Shevett) writes: >>f0057@uafhp.uucp (James Everett Ward) writes: >> >>We are looking into projects that recquire multiuser ability and multitasking >>would just be a boon. I desire to move into the Unix world. What would be >>the easiest transition for a team of Clipper programmers (dBASE III+) ... > >I think you should seriously look at Foxbase under [X|U]nix. I belive this is only available with the SCO product. It *may* be ported to other unix's too, but one should check first.... >If you're >already familiar with the dBase III structure, Foxbase will serve you fine, >and you can port your application to the Unix system with NO mods (save >possibly reindexing your files). I developed a big Foxbase application >under DOS, including file and record locking, and it ported to Unix and ran >ON THE FIRST TRY. I can second that. I help beta-test f-base just before it first came out. Outside of a couple trivila beta bugs here and there I had the same experience with a production tracking system I'd developed for a local steel mill. Just copy the code and the databases over, recompile and reindex, and you're off to the races! >If I wanted to run another task in the background that didn't need >interactive I/O, you could push it into the background and return to the >application via a !function & command. (gee, I wonder how that would work? >Isn't & a comment in Foxbase? Has anyone done this?) No - the && is the end-of-line comment in Foxbase. If the first character is a "*" then the whole line is a comment. The "&" is a prefix for a macro substitution. Some examples: * This line is a comment i = chr(34) + "?hello world"+chr(34) && This is a macro command &i && This will execute the && command ?"hello world" Running the above little program from the '.' prompt or as a .prg will give: Hello world on your screen. Macro substituion is a the standard f-base way to pass arrays as arguments to procedures and functions, to wit: dimension array1(10) array1 = 1 && Store array1 with all '1's i = summ_all("array1") && Call proc to summ array elements ?i ************************************************ procedure summ_all && F-base uses procedures as opposed parameters arr_name && to clipper's function/procedure private summ && Statements. summ = 0 i =1 do while i <= 10 summ = summ + &arr_name(i) && Total up the array elements i = i + 1 enddo return(summ) >I'll admit I'm biased, but I haven't found a major need to dish out >bucks x 10^XXX for a large dbms when Foxbase has everything I need... Ditto! There are some differences between f-base and clipper (f-base has no dbedit() and memoedit() calls, nor some of the other nice f{read/open/write/close} calls clipper has, but they can be worked around. (The dbedit function can be emulated too by writing your own code or (dare I suggest this?) buying a f-base clone of the function which I'm almost done writing) >/--------------------+ 'The shortest distance +------------------\ >| Dave Shevett | between two puns is a | Labyrinth II BBS | >| shevett@labii.UUCP | straight line...' | W. Trenton, NJ | >\--------------------+ - Doc Webster +------------------/ +-----------------------------------------------------------------------------+ |Timothy D. Kuehn timk@xenitec.on.ca | |TDK Consulting Services !watmath!xenitec!timk | |871 Victoria St. North, Suite 217A | |Kitchener, Ontario, Canada N2B 3S4 (519)-741-3623 | |DOS/Xenix - SW/HW. uC, uP, DBMS. Satisfaction Guaranteed| +-----------------------------------------------------------------------------+