Newsgroup: it.comp.appl.access
Titolo: Dbase disponibile su Internet

Avrei la necessità di rendere un dbase creato con access disponibile su
internet. E' possibile?
In pratica vorrei creare della pagine internet che funzionino come
maschere di access, o per lo meno consentano di fare operazioni
similari.
Al momento non voglio sapere come fare, ma soltanto avere un giudizio di
fattibilità del progetto senza ricorrere al complesso e costoso SQL
server.Che dite?
Grazie.
Alessio
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 server.Che dite?
Che dipende dalla quantita e dalla struttura dei dati. Ma Access e' usabile
molto piu' spesso di quanto non si dica in giro.
Per avere un'idea guarda la ricerca sui vecchi msg del NG su
www.sitocomune.com
Saluti.
Luciano

 internet. E' possibile?
Si, ma con una struttura ASP (pagine web dinamiche con base dati origine -
tra le quali anche DB Access - )
--
Maurizio75

 server.Che dite?
che con ASP si può fare, ma con access la microsoft garantisce al massimo 10
utenti contemporanei (magari possono essercene anche di più, ma non è
garantito, e dipende dalla struttura del DB)
Da una FAQ relativa ad ASP trovata in rete riporto quanto segue:
What are the limitations of Access?
25,230 requests - last updated Friday, November 2, 2001
It's no secret: I hate Access. I don't think it should be used in a
production environment for anything more
than a personal website, and an unpopular one at that. If you're building a
web site that you expect will be
even remotely successful, you're only delaying the inevitable by using
Access now. You will eventually be
forced to upgrade to SQL Server (or something similar).
I have many reasons for this, most from first- or second-hand experience.
I'm not going to get into all of those
right now, because it is somewhat biased by my experience, and the type of
applications I specialize in (which
likely varies from the typical ASP programmer).
My primary reason, however, is that Access (and the Jet drivers) can only
manage a handful of users at any
given time (see Q154869). I've received plenty of criticism from people who
expect there to be a hard-lined,
cover-all-your-bases, magic number for this. Sorry to disappoint you, but
there isn't. There are far too many
variables involved, such as (in no particular order):
n ODBC driver version
n database structure
n number of tables queried
n number of queries per user
n size of tables
n number of records
n number of fields
n size of fields
n use of stored queries
n use / size of indices
n bandwidth
n processor speed
n disk subsystem
n RAM
n hard drive space
n behavior of users
Microsoft doesn't even publish hard numbers for this; they just use off-hand
references such as "ten or fewer"
and never define "high concurrency."
http://www.aspfaq.com/plain.asp?id=2195
 (1 of 7) [2/5/2002 8:40:16 AM].#2195
: What are the limitations of Access?
For some people, this is fine. If you have a site with a guestbook, and you
get a few dozen entries a week,
Access should be fine. But if you have a site like this one, with
database-driven navigation, full search
functionality and megs of data flowing each day, you may want to read this
article in its entirety before settling
for Access.
======================
From Q222135
"While Microsoft Jet is consciously (and continually) updated with many
quality, functional, and performance
improvements, it was not intended (or architected) for the high-stress
performance required by 24x7 scenarios,
ACID transactions, or unlimited users, that is, scenarios where there has to
be absolute data integrity or very
high concurrency."
======================
From Q225048
"...Microsoft Jet can only handle a limited number of sessions. If your
application uses a large number of ADO
Data controls, Jet may run out of resources."
======================
From Q240317
"Microsoft Jet has a read-cache that is updated every PageTimeout
milliseconds (default is 5000ms = 5
seconds). It also has a lazy-write mechanism that operates on a separate
thread to main processing and thus
writes changes to disk asynchronously. These two mechanisms help boost
performance, but in certain
situations that require high concurrency, they may create problems."
======================
From 
http://msdn.microsoft.com/library/en-us/dnmsde/html/msdeforvs.asp
"Jet can support up to 255 concurrent users, but performance of the
file-based architecture can prevent its use
for many concurrent users. In general, it is best to use Jet for 10 or fewer
concurrent users."
http://www.aspfaq.com/plain.asp?id=2195
 (2 of 7) [2/5/2002 8:40:16 AM].#2195
: What are the limitations of Access?
======================
From 
http://msdn.microsoft.com/library/en-us/dnduwam/html/d2dbase.asp
"Phase 2 of the Duwamish Books sample includes a Microsoft® Access .mdb
database, although this
technology supports fewer concurrent users than does Microsoft SQL Server."
======================
You're not going to get hard numbers from anyone else that apply
specifically to your application. It is YOUR
responsibility to benchmark YOUR application and make sure that Access can
handle the maximum number of
simultaneous users YOU expect (or hope for). Not performing this kind of
test is doing a disservice to you, your
employer, and your client -- and opening all up to risk of failure.
With all that aside, if you're stuck with Access, here is a list of links to
KB articles revolving around specific
Access error messages. This isn't a completely exhaustive list, but it
should serve to be a good starting point.
80040e07 - Data type mismatch in criteria expression.
Q136059, Q175258, Q184948, Q208425, Q210244, Q246570
80040e10 - Too few parameters. Expected <x>.
Q162980, Q171850, Q172898, Q178070, Q181209, Q181832, Q184233, Q191619,
Q205972, Q207586,
Q216425, Q237994
80040e14 - The Microsoft Jet Database engine cannot find the table or query
'tablename'. Make sure it exists
and that its name is spelled correctly.
Q184572
80040e14 - Syntax error in FROM clause.
Q181489
80040e4d - Too many client tasks.
Q154869
80004005 - The Microsoft Jet database engine cannot open the file
'(unknown)'. It is already opened
exclusively by another user, or you need permission to view its data.
Q166029, Q174943, Q189408
http://www.aspfaq.com/plain.asp?id=2195
 (3 of 7) [2/5/2002 8:40:16 AM].#2195
: What are the limitations of Access?
80004005 - Data source name not found and no default driver specified.
Q159682, Q174655, Q184572
80004005 - Operation must use an updateable query.
Q175168
80004005 - Couldn't use '(unknown)'; file already in use.
Q174943
==================
Aside from the concurrent user and permissions problems, Access lacks many
other qualities of a mission-critical,
enterprise-level database.
==================
Scalability
==================
I don't believe it can be stressed enough that Access will simply not stand
up to traffic. I realize it is tough to
simulate TRUE load testing in a development environment, but if it can
prevent you from launching an
inadequate database, it will be worth the trouble. Mission-critical
databases should laugh at traffic; database
servers should buckle under bandwidth and RAM contsraints before they're
ever stopped by the database itself.
As an added point, SQL Server has the flexibility of actually using multiple
processes on an SMP machine.
==================
Backup
==================
Access doesn't have a good backup scheme; in fact, it doesn't have a backup
scheme at all. Being file-based,
there are two problems with attempting to back up Access: (1) if records are
modified while the backup is
being performed, the backup may become corrupt; and, (2) many backup
programs won't even touch a file
that is in use. Most capable database systems have a variety of configurable
backup schemes, and SQL Server
is no exception. SQL Server also has comprehensive locking facilities,
making it much more difficult to corrupt a
backup.
Similarly, it is near impossible to modify an Access database while it is
'live', e.g. while any user has a page
http://www.aspfaq.com/plain.asp?id=2195
 (4 of 7) [2/5/2002 8:40:16 AM].#2195
: What are the limitations of Access?
opened that is accessing any table within. You have to copy the database,
make your changes, and replace the
'live' version - waiting until nobody is on your site. Not something that
can be tolerated in a 24/7 environment.
==================
Replication
==================
A decent database system has at least one way to replicate / transfer
content from one database, or one
server, to another. SQL Server has multiple options for Data Transformation
Services (DTS), and can have
external tools "plugged in" to perform similar tasks. With versions of
Access prior to 2000, it was always right-click,
copy .mdb file, paste. Yuck.
==================
Security
==================
Capable database platforms have multiple levels of configurable security,
down to the object level. A user can
also be permitted across databases and across servers. Through the context
of ASP, Access only has the ability
to password protect a database on a single file basis, so you can't have
custom permissions per query, table or
view.
Another element of security is that even password-protected MDB files are
easily compromised simply by
importing them into an Access 2000 application.
==================
Transactions
==================
SQL Server is a transactional database. Aside from remote stored procedures,
any set of operations within a
transaction can be rolled back. With Access, you would have to either (a)
use transactions from an external
application, e.g. COM+ or MTS; or (b) revert to a previous copy of the
database.
==================
Triggers
==================
In SQL Server, triggers allow you to perform operations in response to
certain events without slowing down the
http://www.aspfaq.com/plain.asp?id=2195
 (5 of 7) [2/5/2002 8:40:16 AM].#2195
: What are the limitations of Access?
calling application. For example, you could have SQL Mail send you an e-mail
after every five inserts to the
ORDERS table where the order total is greater than $50. With Access, you
would have to create a table, store a
count for the number of times such an insert occurs, and code the
application to send mail at insert time
(which slows down the application itself). Not the prettiest solution.
==================
SQL Mail
==================
SQL Server supports a native mail format; as long as there is an Exchange
Server within reach, you can tell the
database to e-mail specific users on certain events... e.g. within a
trigger, or when certain database tasks fail.
With Access, you would have to code this stuff up yourself - assuming you
find some way to trap the event(s)
in the first place.
==================
Jobs
==================
SQL Server supports jobs, allowing you to schedule database tasks and have
the system execute them
automatically (instead of a user having to invoke them). You can schedule
jobs to be performed when the CPU
is idle, or at certain times during the day. We use this for
number-crunching at the end of each day, and for
archiving stats throughout the day to keep our 'active' tables as small as
possible.
==================
Stored Procedures
==================
Yes, Access supports stored queries. But IMHO, these are nowhere near as
powerful as stored procedures. For
one, it is difficult to have stored queries access data from different
databases. With stored procedures, this is
trivial at worst. SQL Server stored procedures support cursors and temporary
tables, both of which are very
powerful tools in sorting data and performing operations/calculations/logic.
Additionally, SQL Server comes with several system and extended stored
procedures, which you can plug into
your existing logic to do all sorts of things (such as retrieve a directory
file listing (exec xp_cmdshell 'dir
c:\'), list all of the users currently accessing your database (exec
sp_who), or iterate through all DSNs on the
server (exec xp_enumdsn). Try and do those things from Access!
http://www.aspfaq.com/plain.asp?id=2195
 (6 of 7) [2/5/2002 8:40:16 AM].#2195
: What are the limitations of Access?
==================
Again, if you want to use Access for your personal photos page or your CD
collection, and you're not going to
publish it for the world to see, then Access is more than capable. I
strongly recommend not using Access in
any application for which a 3rd party is relying on you, especially an
e-commerce or other 24/7 operation.
And I'm not saying you have to use Microsoft's SQL Server, or even the
latest version (I like 2000, but 7.0 is
more or less equally beneficial). While it is the database that is the
natural 'next step' - and many upsizing
tools and tutorials are available (see Article #2182). There are several
other database packages you can look
at, each with their own strengths and weaknesses. These include Sybase, DB2,
Oracle, Informix... my
preference, as you might guess, is SQL Server... but I do have some level of
faith in all of these products.