[comp.databases] Dbase Question

raanan@bc-cis.UUCP (06/05/87)

	Does anybody know how to find out if a memo field in a database
is empty or not (ie. is there a memo connected to it). Memo fields do not have 
to be connected to a memo in the .DBT file.

	Thanks,
-- 
------------------------------------------------------------------------
Raanan Herrmann  (bc-cis!raanan, raanan@bc-cis)

amyjo%naima@Sun.COM (Amy Jo Bilson) (06/01/88)

Is anyone out there familiar enough with the Dbase (III, etc.)
product to tell me if this system is "multi-user", and if so,
what facilities they provide (i.e. locking, transactions)

My brother, who owns and runs his own small (5-person) business,
has a rather large investment in Dbase software, and he really needs
to set up a system whereby 3 or 4 users can access the same database, 
at (approximately) the same time.

If Dbase doesn't have this capability, which PC-based database does?
Doesn anyone have a system of this kind set up?

Thanks in advance--

AJ
amyjo@sun.com

pvirgo@cucstud.UUCP (Paul Virgo) (06/03/88)

Dear Ms. Bilson,
 In response to your question(if it hasn't been answered already) YES!!!!
 dBASE III(and dBASE III+) are of the multiuser ilk. Since your brother
 has only five people working in his office, it is good, in my opinion,
 to determine who needs access to the computer most and then setting up
 the proper network situation. dBASE III and dBASE III+ give coverage
 on how to set up exclusive or shared files, how to use file locking
 functions and the like. If his system is a multi-user capability PC,
 he won't have to worry about installing a LAN(which can be quite
 costly). 

 But despite the fact that dBASE III is multi-user, it is *painfully*
 slow. It's good that there are compilers out there created to give
 dBASE III+ applications; a good one and also one that appears to be
 a standard is Clipper by Nantucket. The best bet is for you and/or
 your brother to consult computer bookshops or go to his system dealer
 for more information. Better yet, there are plenty on USENET who can
 and may be of great help in setting your brother up. Any way you do
 it, I wish you the best of luck....

					Sincerely,
					Paul E. Virgo

sysop@stech.UUCP (06/05/88)

in article <54973@sun.uucp>, amyjo%naima@Sun.COM (Amy Jo Bilson) says:
> 
> Is anyone out there familiar enough with the Dbase (III, etc.)
> product to tell me if this system is "multi-user", and if so,
> what facilities they provide (i.e. locking, transactions)
> 
> My brother, who owns and runs his own small (5-person) business,
> has a rather large investment in Dbase software, and he really needs
> to set up a system whereby 3 or 4 users can access the same database, 
> at (approximately) the same time.
> 
> If Dbase doesn't have this capability, which PC-based database does?
> Doesn anyone have a system of this kind set up?
> 
> Thanks in advance--
> 

dBase can be used as a mulit-user DBMS through the purchase of a dBase
LAN PAK ($995). It will run with a number of PC LAN software, including
Novell Advanced Netware and 3Com. 

Some code may have to be modified to accommodate locking, which dBase
III Plus does not do very well. dBase IV is supposed to lock records
automatically, which should save a lot of grief. In the meanwhile, it
has to be done through application programs.

Jan Harrington, sysop
Scholastech Telecommunications
UUCP: ihnp4!husc6!amcad!stech!sysop or allegra!stech!sysop
BITNET: JHARRY@BENTLEY

********************************************************************************
	Miscellaneous profundity:

		"No matter where you go, there you are."
				Buckaroo Banzai
********************************************************************************

sytek@tekgen.BV.TEK.COM (Mike Ewan) (06/07/88)

Regarding multi-user Dbase; it does not support this to my knowlege.  You can
however use one of the DbaseIII compilers on the market.  My experience is 
with Clipper.  It does support multi-user network access with file/record
locking.  Clipper will also make your software run 4 to 10 times faster.

Opinions herein are strictly my own.

louis@auvax.UUCP (Louis Schmittroth) (06/13/88)

In article <592@stech.UUCP>, sysop@stech.UUCP (Jan Harrington) writes:
> in article <54973@sun.uucp>, amyjo%naima@Sun.COM (Amy Jo Bilson) says:
> > 
> > Is anyone out there familiar enough with the Dbase (III, etc.)
> > product to tell me if this system is "multi-user", and if so,
> > what facilities they provide (i.e. locking, transactions)
> > 
> > My brother, who owns and runs his own small (5-person) business,
> > has a rather large investment in Dbase software, and he really needs
> > to set up a system whereby 3 or 4 users can access the same database, 
> > at (approximately) the same time.
> > 

Consider FoxBase+ (F+) on SCO Xenix or a LAN.  F+ is a complete
replacement for dBase III+ (D+), with both an interpreter giving you
the complete dot prompt capability of D+, and a compiler which speeds
up D+ by anywhere from 3 to 6 times depending on the operation.  It is
utterly compatible but has a few real nice extensions, and is cheaper.
We are moving all our applications from dBase to FoxBase on both MS-DOS
and SCO Xenix.  For portability, F+ also runs on Macs, and a UNIX
System V version is in the works.  We run into this situation also, and
have decided to go with SCO Xenix and FoxBase+ for multi-user
migration.  We also supply VP/ix to run DOS only applications.


A lot of D+ applications have already been moved to F+ both on DOS
and Xenix.

-- 

Louis Schmittroth		           My employer has no opinions.
Computer Science
Athabasca University   ...{ubc-vision, ihnp4}!alberta!auvax!louis

mithomas@bsu-cs.bsu.edu (Michael Thomas Niehaus) (04/09/89)

I hate to ask questions specific to dBase III+, but I need a quick 
answer.  Here's the situation:

I have a database that has two indexes, the master index which in unique
and another non-unique index on a string + date combination.  I would like
to switch to using the second index as the master (using SET ORDER) to do
a search.  To do this, I am doing this series of commands:

LOCATE FOR .t.       && Just point to the first record to initialize locate
SEEK data-to-be-found  && To do a quick move to the records that I want
...processing...
CONTINUE             && To advance to the next record as per the indexed order

Can anyone tell me if this is a good idea?  If not, how would you go about
this?

Thanks,
  Michael



-- 
Michael Niehaus        UUCP: <backbones>!{iuvax,pur-ee}!bsu-cs!mithomas
Apple Student Rep      ARPA:  mithomas@bsu-cs.bsu.edu
Ball State University  AppleLink: ST0374 (from UUCP: st0374@applelink.apple.com)

wew@naucse.UUCP (Bill Wilson) (04/10/89)

>
The continue command should only be used with LOCATE.  When using
seek and find, you simply skip to the next record and check to see 
if the key expression is the same with an if statement.  If you
have any other questions please email me.
 
-- 
Bill Wilson                          (Bitnet: ucc2wew@nauvm)
Northern AZ Univ
Flagstaff, AZ 86011
{He's Watching me Watching you Watching him...}

awd@dbase.UUCP (Alastair Dallas) (04/11/89)

In article <6666@bsu-cs.bsu.edu>, mithomas@bsu-cs.bsu.edu (Michael Thomas Niehaus) writes:
> I hate to ask questions specific to dBase III+, but I need a quick 
> answer.
> 
> LOCATE FOR .t.       && Just point to the first record to initialize locate
> SEEK data-to-be-found  && To do a quick move to the records that I want
> ...processing...
> CONTINUE             && To advance to the next record as per the indexed order
> 
> Can anyone tell me if this is a good idea?  If not, how would you go about
> this?

No, this is not a good idea.  LOCATE/CONTINUE incurs unecessary overhead
when all you need is:

SEEK data-to-be-found	&& To move to the first record you want
...processing...
SKIP			&& To advance to the next record in index order

When you SET ORDER to a different database, the meaning of GOTO TOP and
SKIP, in particular, is altered to reflect the new ordering.  In other
words, it does want you want without messing with LOCATE/CONTINUE.

Hope it helps.

/alastair/

steve@violet.berkeley.edu (Steve Goldfield) (04/11/89)

In article <1325@naucse.UUCP> wew@naucse.UUCP (Bill Wilson) writes:
#>>
#>The continue command should only be used with LOCATE.  When using
#>seek and find, you simply skip to the next record and check to see 
#>if the key expression is the same with an if statement.  If you
#>have any other questions please email me.
#> 
#>-- 
#>Bill Wilson                          (Bitnet: ucc2wew@nauvm)

Actually, it's probably more efficient to put the SKIP inside
a DO WHILE CONDITION, rather than to embed an IF statement.

Steve Goldfield

awd@dbase.UUCP (Alastair Dallas) (04/12/89)

In article <22879@agate.BERKELEY.EDU>, steve@violet.berkeley.edu (Steve Goldfield) writes:
> In article <1325@naucse.UUCP> wew@naucse.UUCP (Bill Wilson) writes:
> #>>
> #>The continue command should only be used with LOCATE.  When using
> #>seek and find, you simply skip to the next record and check to see 
> #>if the key expression is the same with an if statement.
> 
> Actually, it's probably more efficient to put the SKIP inside
> a DO WHILE CONDITION, rather than to embed an IF statement.
> 

In dBASE IV, you can use the SCAN command.  Instead of what Steve suggests:

SEEK <key>
DO WHILE <key> = value
	<processing>
	SKIP
ENDDO

you can say:

SCAN FOR <key> = value
	<processing>
ENDSCAN

which is a little more elegant.

/alastair/

	

alexis@ccnysci.UUCP (Alexis Rosen) (04/13/89)

In article <6666@bsu-cs.bsu.edu> mithomas@bsu-cs.bsu.edu (Michael
Thomas Niehaus) writes:
>I hate to ask questions specific to dBase III+, but I need a quick 
>answer.  Here's the situation:
>
>I have a database that has two indexes, the master index which in unique
>and another non-unique index on a string + date combination.  I would like
>to switch to using the second index as the master (using SET ORDER) to do
>a search.  To do this, I am doing this series of commands:
>
>LOCATE FOR .t.       && Just point to the first record to initialize locate
>SEEK data-to-be-found  && To do a quick move to the records that I want
>...processing...
>CONTINUE             && To advance to the next record as per the indexed order
>
>Can anyone tell me if this is a good idea?  If not, how would you go about
>this?

This is a bad idea. It won't work at all. This is because you are using the
wrong commands. In general, the problem is much simpler than you think it is.

Locate and Continue are SEQUENTIAL SEARCH COMMANDS!!! Don't use them for this!
It is not exactly clear what you're trying to do, but how about this?

tmprn = Recno()          && preserve current record Pointer
Set Order To 2           && use diferent order. Doesn't move pointer.
Seek expr                && you need not Go Top or anything, this will
                         && find a matching record even if you're past it
* Do processing here
Set Order To 1
Go tmprn                 && return to old record

If this is not what you want to do, mail me. Moving around in FoxBase (you
aren't really using dBase, are you?) is a breeze.

---
Alexis Rosen
alexis@ccnysci.{uucp,bitnet}

awd@dbase.UUCP (Alastair Dallas) (04/15/89)

This discussion, talking about the dBASE construct:

	SEEK <value>
	DO WHILE <key> = <value>
		<process>
		SKIP
	ENDDO

took a strange turn recently when I interjected the dBASE IV SCAN command.
My apologies.  SCAN makes a pass through the entire database, and it would
only be appropriate in extremely low selectivity situations (i.e., if most
of the keys in the index were equal to <value>).  I guess I jumped at an
opportunity to plug one of our new commands.

(Thanks to hjb for pointing this out--I can't email a reply to the address
you sent, BTW.)

/alastair/

marc@lakesys.UUCP (Marc Rassbach) (06/12/89)

I can not seem to get the following concept to work.....

STORE "myfile.ras" TO filename

APPEND FROM filename TYPE SDF

Is there anyway to get variables into this expression?
Is this a | dream?
Or am I just screwing up?

Thanks!

-- 
Marc Rassbach     marc@lakesys	              If you take my advice, that
"I can't C with my AI closed"                 is your problem, not mine!
              If it was said on UseNet, it must be true.

nfs0294@dsacg1.UUCP (Glendell R. Midkiff) (06/12/89)

From article <714@lakesys.UUCP>, by marc@lakesys.UUCP (Marc Rassbach):
> I can not seem to get the following concept to work.....
> STORE "myfile.ras" TO filename
> APPEND FROM filename TYPE SDF
> Is there anyway to get variables into this expression?

In Clipper, which is DBASE compatible, you would:
   STORE "myfile.ras" to filename
   APPEND FROM &filename TYPE SDF
Note the & to indicate macro prior to filename.  This concept
should work in DBASE.
-- 
 |-----------------------------------------------------------------------|
 |Glen Midkiff   osu-cis!dsacg1!gmidkiff                                 |
 | Phone: (614)-238-9643 @DLA, Systems Automation Center, Columbus, Oh.  |
 |-----------------------------------------------------------------------|  

randy@rls.UUCP (Randall L. Smith) (06/13/89)

In article <714@lakesys.UUCP>, marc@lakesys.UUCP (Marc Rassbach) writes:
>
> APPEND FROM filename TYPE SDF
> 
> Is this a | dream?
> Is there anyway to get variables into this expression?

No pipe dream.  Use;

APPEND FROM filename FIELDS field1, field2, .... fieldn DELIMITED TYPE SDF

-- or additionally --

......... DELIMITED WITH delimiter ...

In the first case the double quote is the defaulted delimiter and the
second case it is specified.  For the first case the fields should look like;

"field one stuff","field two stuff", .... ,"field en stuff"

The second case is left as an exersize.:-)  Thats all.

- randy

Usenet: randy@rls.uucp
Bangpath: ...<backbone>!osu-cis!rls!randy
Internet: rls!randy@tut.cis.ohio-state.edu

awd@dbase.UUCP (Alastair Dallas) (06/14/89)

In article <714@lakesys.UUCP>, marc@lakesys.UUCP (Marc Rassbach) writes:
> STORE "myfile.ras" TO filename
> APPEND FROM filename TYPE SDF
> 
> Is there anyway to get variables into this expression?

If you are using dBASE IV, you can benefit from "filename expressions,"
but if you are using dBASE III [Plus], you'll have to use an &-macro.
In dBASE IV, programs run faster if you avoid &-macros (insert plug here
for my upcoming article in Data Based Advisor).  For backward-compatibility,
dBASE IV has to treat

	APPEND FROM filename

as a reference to a file called "filename."  However, the following two 
forms, as expressions, are treated as references to a variable called filename:

	APPEND FROM filename+""
	APPEND FROM (filename)

Using dBASE III [Plus], you have no choice but to use the &:

	APPEND FROM &filename

I have more to say; if you have any further questions, I'd be glad to followup.

/alastair/

Disclaimer: This is unofficial.  I don't speak for them; they don't
speak for me.

jack.bzoza@canremote.uucp (JACK BZOZA) (06/17/89)

mP>APPEND FROM filename TYPE SDF

mP>Is there anyway to get variables into this expression?

Have you tried

APPEND FROM &filename TYPE SDF

Be <C>hatting with you.....
---
 * QDeLuxe 1.10 #168  Lead, follow or get out of the way !

jack.bzoza@canremote.uucp (JACK BZOZA) (06/27/89)

mP>STORE "myfile.ras" TO filename

mP>APPEND FROM filename TYPE SDF

Try

STORE "myfile.ras" TO filename
APPEND FROM &filename TYPE SDF

Be <C>hatting with you.....
---
 * QDeLuxe 1.10 #168