Make an MS Access Recycle bin

G

Guest

I suggest the establishment of a MS Access recycle bin, as Access does not
free the memory until the database is compacted I also suggest renaming of
the 'Compact Database' function to 'Empty Recycle Bin'. I feel that this
would potentially save an Access developer much time and annoyance when the
either delete the wrong thing or not realise that something was dependant on
the item that they just deleted. This item of functionality (the recycle
bin) could also feature in the next release of SQL Server, however as there
is no 'Compact Database' function is SQL Server I think that it would be more
difficult to create.

----------------
This post is a suggestion for Microsoft, and Microsoft responds to the
suggestions with the most votes. To vote for this suggestion, click the "I
Agree" button in the message pane. If you do not see the button, follow this
link to open the suggestion in the Microsoft Web-based Newsreader and then
click "I Agree" in the message pane.

http://www.microsoft.com/office/com...5ab&dg=microsoft.public.access.tablesdbdesign
 
S

Sylvain Lafontaine

There are already some "Version Control Systems" (VSS) available for Access
that will give you the possibility of not only keeping the last version of
each form but also all their previous versions that have been "check-in".
These systems also provide the ability to have a team working on the same
database.

You should ask for a suggestion in this newsgroup or search Google for «
Access VSS » or « Access Visual SourceSafe »

See also:

http://msdn.microsoft.com/vstudio/previous/ssafe/

http://en.wikipedia.org/wiki/List_of_revision_control_software


Personally, I like to use backups to keep a copy of my previous versions.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: http://cerbermail.com/?QugbLEWINF


"Nick 'The Database Guy' McMillen" <Nick 'The Database Guy'
(e-mail address removed)> wrote in message
news:[email protected]...
 
G

Guest

Personally I also like to keep backups, however not all developers do
wouldn't be a help to them? Also this would eliminate the need to keep quite
so regular back ups.

Thanks

Nick
 
6

'69 Camaro

Hi, Nick.
I suggest the establishment of a MS Access recycle bin, as Access does not
free the memory until the database is compacted I also suggest renaming of
the 'Compact Database' function to 'Empty Recycle Bin'.

I don't want you to get your hopes up, because this isn't going to happen
without a significant cost to customers. Relational Databases don't work as
file receptacles like file systems do, so the database engine can't save
deleted objects and records intact, just in case the user may want to
restore them later.

A file is a separate, self-contained entity, so the operating system can
leave a deleted file intact on the hard disk at a protected address for
later retrieval. A deleted object in a database depends upon other database
objects and other metadata for its structure, properties, methods, and
relationships. The database engine can't keep tabs on these peripheral
items for deleted objects in addition to these peripheral items for the
current database objects without maintaining a potentially huge overhead and
storage requirements, which means a restructuring of the Jet data file
structure and a complete revamping of how Jet works (Jet currently partially
overwrites items marked for deletion while doing its housekeeping). Not to
mention the slowdown in performance as Jet does the extra work for
maintaining the extra metadata for deleted objects, and as Jet traverses
larger file sizes when holding the "recyclable" objects and to handle this
extra metadata for the recyclable objects.

In addition, a deleted record depends upon the table's structure, indexes,
and related records in related tables. If this deleted record were "kept in
a recycle bin," what would happen to it if it were later restored after the
table structure, indexes, constraints, or related records were changed?
You'd have an orphan square peg trying to fit into a round hole, so the
database engine would have to roll back all of the changes to the table
structures, indexes, constraints, and related records in order to get this
restored record to fit into the table again. There are no transaction logs
in Access, so Jet would have to be redesigned to create and use transaction
logs.

The expense for developing database engine software that has a "recycle bin"
capability of a file system would have to be borne by the customers in the
price they pay for the product. You might be willing to pay a few extra
hundreds of dollars for Access, but are all the other customers willing to
do so, too?
I feel that this
would potentially save an Access developer much time and annoyance when
the
either delete the wrong thing or not realise that something was dependant
on
the item that they just deleted.

Mistakes happen, so database professionals use transactions for database
operations that might not result in the intended consequences. That way,
the transaction can be rolled back to the original state instead of
committed. If an Access developer isn't experienced enough to use
transactions, then renaming the object (such as from tblMyTable to
*tblMyTable or ~tblMyTable) will keep the object in the database file, but
not mark it for deletion (where Jet will partially overwrite the object's
data while doing its housekeeping). And deleted objects and records can be
restored from backup when required, although this step may take a few
minutes.
This item of functionality (the recycle
bin) could also feature in the next release of SQL Server, however as
there
is no 'Compact Database' function is SQL Server I think that it would be
more
difficult to create.

Don't worry about SQL Server. It has its own methods of "shrinking" the
data file to get rid of deleted data, either automatically or by a DBA's
manipulations. A recycle bin within the data file would severely hinder the
performance of SQL Server and make it more complex than it needs to be.

And don't worry about a "recycle bin" saving a SQL Server developer much
time and annoyance when he deletes something that he shouldn't have. Any
"database guy" who deletes data that he shouldn't have in a client/server
database and can't restore it in a heartbeat has no business working as a
database professional, so will either be fired or handed a broom or other
equipment for another job he's more capable of.

HTH.
Gunny

See http://www.QBuilt.com for all your database needs.
See http://www.Access.QBuilt.com for Microsoft Access tips and tutorials.
http://www.Access.QBuilt.com/html/expert_contributors2.html for contact
info.


"Nick 'The Database Guy' McMillen" <Nick 'The Database Guy'
(e-mail address removed)> wrote in message
 
B

BruceM

I don't think Access should be loaded with another automated feature that
may or may not work as you intend. If I am in the middle of working on a
form I may make a change, then decide against it. If Access decided to save
while the temporary change is in place, I'm stuck with that as a backup.
Access has no way of knowing when I wish to save my work. You as a
developer need to make choices about backing up. It's part of development.

"Nick ''The Database Guy'' McMillen"
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top