|
Home > Archive > Programming with dBASE > October 2005 > Why DELETEs are NOT allowed
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Why DELETEs are NOT allowed
|
|
| Zoltan Forray 2005-10-17, 1:26 pm |
| Does someone have a list of differences between Visual dBase V5.7 and dBase Plus when it comes to using the DELETE command ?
I am constantly having compatibility issues with using DELETE in Plus, when this used to be perfectly acceptable/functional in VdB 5.7.
Sometimes I get this message:
"Detabase Engine Error: Record/Key deleted".
Well, DUH, the statement it points to is a DELETE and I am trying to (or it has succeeded) DELETE the record in a database due to a condition being met !
This program works just fine in 5.7 ?
What gives ?
| |
| Gerald Lightsey 2005-10-17, 1:26 pm |
| On Sun, 16 Oct 2005 17:17:27 -0400, in the dbase.programming group,
Zoltan Forray said...
> Does someone have a list of differences between Visual dBase V5.7
> and dBase Plus when it comes to using the DELETE command ?
>
> I am constantly having compatibility issues with using DELETE in
> Plus, when this used to be perfectly acceptable/functional in VdB 5.7.
>
> Sometimes I get this message:
>
> "Detabase Engine Error: Record/Key deleted".
>
> Well, DUH, the statement it points to is a DELETE and I am trying
> to (or it has succeeded) DELETE the record in a database due to a
> condition being met !
>
> This program works just fine in 5.7 ?
>
> What gives ?
As far as I know the difference, (when you are using a work area), is
that changes you make to
SET DELETED
are not retained in the .INI file. Therefore the 32 bit versions of
dBASE always start up with Set Deleted = ON. If you want it to behave
like VdB5.7, (when using a work area), just issue the command
SET DELETED OFF.
OODML does not respect the SET DELETED command and always behaves as if
SET DELETED = ON. As far as I know this behavior was established at the
beginning of the 32 bit product in order to make .DBF tables appear to
behave more like virtually every other database environment.
Gerald
| |
| Zoltan Forray 2005-10-20, 8:26 pm |
| Thanks for the reply.
Unfortunately, this doesn't address why a DELETE (using "work areas") fails/errors for no apparent reason !
Gerald Lightsey Wrote:
> On Sun, 16 Oct 2005 17:17:27 -0400, in the dbase.programming group,
> Zoltan Forray said...
>
> As far as I know the difference, (when you are using a work area), is
> that changes you make to
> SET DELETED
> are not retained in the .INI file. Therefore the 32 bit versions of
> dBASE always start up with Set Deleted = ON. If you want it to behave
> like VdB5.7, (when using a work area), just issue the command
> SET DELETED OFF.
>
> OODML does not respect the SET DELETED command and always behaves as if
> SET DELETED = ON. As far as I know this behavior was established at the
> beginning of the 32 bit product in order to make .DBF tables appear to
> behave more like virtually every other database environment.
>
> Gerald
| |
| Gerald Lightsey 2005-10-20, 8:26 pm |
| On Tue, 18 Oct 2005 14:18:28 -0400, in the dbase.programming group,
Zoltan Forray said...
> Unfortunately, this doesn't address why a DELETE (using "work areas")
> fails/errors for no apparent reason !
If set deleted is ON, (the default in 32 bit dBASE), then a deleted
record is not seen just as a record that is excluded from a filter
cannot be seen or operated upon. That is the design intent in these
versions to make a record disappear when it is deleted just like other
DBM's which only have a hard delete and not a soft delete like .DBF
tables have always had. A lot of that design intent is intended to work
around the problem of having to have exclusive use of a table before a
record can be packed, (hard deleted), after a soft delete.
Gerald
|
|
|
|
|