Icon View Thread

The following is the text of the current message along with any replies.
Messages 11 to 14 of 14 total
Thread How to detect that a database is missing
Wed, Jul 4 2007 12:51 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Stephan,

<< You may be right if you think in terms of company databases. But as far
as I understood, DBIsam and also EDB were not designed for large business
databases. Instead, both are designed as former BDE replacement and now as
alternatives to other lightweight databases. Those databases are used for
end-user desktop apps, because they don't need extra users' work like M$-SQL
Server or Interbase etc. We as developers like databases like DBisam, EDB,
etc. because we can afford them and because distribution with our own apps
is free. With respect to the requirements of those apps, I completely
disagree with your statement.  For example, my applications (see
www.sportsoftware.de Wink must work as standalone apps as well as in
networks. Also the users do touch the datafolders manually, may it be by
accident or intentionally, when exchanging data. Nobody of them would
understand why the database system like EDB will not complain about missing
data. >>

If your users are exchanging data by copying around tables, then that type
of system simply won't work with EDB.  You cannot do it, period, and expect
things to work well.  Messing with the physical files is not the proper way
of allowing a user to transfer data.  Doing so in DBISAM wasn't a good idea,
and doing so in EDB is a really bad idea.  As for EDB complaining about
missing data, you're not understanding my last post at all.  EDB doesn't
think any data is missing because the database catalog doesn't track whether
there is data in a table (nor should it).  It simply tracks whether a table
exists, and if a table is defined in the catalog, then it exists.  And
frankly, if your customers are smart enough to blow away a database
directory but leave the database catalog in place, then they know enough to
know what the results of their actions are.  If you delete the entire
contents of a database directory, then you will get "<Object> doesn't exist"
errors when you run your application and try to reference
tables/views/procedures/functions that are no longer in the database
catalog.  The same holds true for the database(s) if the configuration file
is deleted.

--
Tim Young
Elevate Software
www.elevatesoft.com

Wed, Jul 4 2007 12:54 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Stephan,

<< Now, what is EDB actually? An improvement to DBisam  or not? >>

EDB is not an upgrade to DBISAM, if that's what you're getting at.

<< Yes, with DBIsam you must check with fileexists, since you don't have a
database catalog. Instead the "catalog" exists in code, means some checking
procedures. But EDB has a database catalog, whose task among others should
be to check if the definitions do match what is there physically. >>

The catalog is the only "there" that there is.  If a table is defined in the
catalog, then it exists.  The same is the case for databases in the
configuration.

<< Even with DBIsam it is not necessary to check if a table exists before
opening it. You just get an exception which tells you that something is
wrong. Well, with EDBTable this is the same, but I would expect this also
for  TEDBDatabase.Open. >>

Yes, but EDB is not DBISAM.  DBISAM stored its metadata in the same files as
the data, hence the existence of the physical files was equivalent to them
existing, period.

--
Tim Young
Elevate Software
www.elevatesoft.com

Wed, Jul 4 2007 3:51 PMPermanent Link

Chris Erdal
Stephan Krämer <StKraemer@sportsoftware.de> wrote in
news:D74478AF-2009-4412-A024-8E1AD0BED0DE@news.elevatesoft.com:

So far, I don't have any precise answer from Tim if EDB
> will handle this, yes or no.

Stephan,

 I feel you're being unfair to Tim when you say he hasn't given a
precise answer.

He has stated very clearly that EDB is not designed to detect whether the
system files that are (or are no longer) in the place the catalog says
they should be are the same as last time or not.

So EDB expects users to take reasonable care about not disturbing system
files containing tables referenced in the EDB catalog, or else things
will not work.

My personal point of view is that this is a GOOD THING to explain to
users, along with how to do automated backups so we can bill them a
little when they call us in to magically restore everything when they
mess it all up !

--
Chris
(XP-Pro + Delphi 7 Architect + DBISAM 4.25 build 4 + EDB 1.04 build 3)

Wed, Jul 4 2007 4:21 PMPermanent Link

Stephan Krämer
Tim,

I am sorry that it looks like I hurt you.
I seems that I am not able to explain you what I mean. Sorry for that, I don't want to
keep you off from your work.

Best regards
Stephan
« Previous PagePage 2 of 2
Jump to Page:  1 2
Image