ASP 101 - Active Server Pages 101 - Web01
The Place ASP Developers Go!

Please visit our partners


Windows Technology Windows Technology
15 Seconds
4GuysFromRolla.com
ASP 101
ASP Wire
VB Forums
VB Wire
WinDrivers.com
internet.commerce internet.commerce
Partners & Affiliates














ASP 101 is an
internet.com site
ASP 101 is an internet.com site
IT
Developer
Internet News
Small Business
Personal Technology

Search internet.com
Advertise
Corporate Info
Newsletters
Tech Jobs
E-mail Offers

ASP 101 News Flash ASP 101 News Flash





FAQ for the Database Editing sample:


I keep getting "Cannot update. Database or object is read-only." What's going on?

This is normally caused by the NTFS permissions on an Access database not allowing the user write access to the .mdb file. I have also seen situations where the permissions on the file are fine, but the directory it's in is locked down so tightly that the Jet engine can't create it's temporary files.

The user account in question is usually named something like IUSR_machine-name and it needs write permissions to the file/directory. You can modify NTFS permissions by using Windows Explorer and right clicking on the object whose permissions you wish to modify and selecting Properties. In the resulting dialog box there should be a Security tab. This is the place to make NTFS security setting changes.

If you don't have access to Windows Explorer on your web server, you'll need to contact whoever is in charge of the server and see what they have set up. Most hosting companies either have a specific area set up for this type of file or have a control panel of some sort that will let you change these settings, but it all depends on how they've got things set up.

There's a reference to adovbs.inc in the code. What is it, why doesn't it work without it, and where can I get it?

When writing database related code in ASP, you're really using ADO (ActiveX Data Objects) which is Microsoft's set of components which provide programmatic database access. ADO defines a lot of different constants which you can use to make code more readable and easier to follow and debug. In order to use these constants in VBScript you need to define them. This is where adovbs.inc comes in.

The adovbs.inc file contains a list of the ADO constants and their numerical equivilents and when included in your ASP code, it defines them as constants so you have access to them in your code. There are a lot of these constants and most of our code is relatively simple database code so it only uses a few of them, but some you might recognize are adOpenStatic, adLockReadOnly, adCmdText, etc...

The reason the code doesn't work when you forget to include the file is that the constants the code uses aren't defined. The result is that incorrect values get passed to ADO and it doesn't know what to do with them.

In terms of getting a copy, you probably already have one! Do a search on your system for adovbs.inc and you'll almost certainly find the copy that was installed with ADO. If you can't find one you can get a copy of the one I'm currently using for the samples from here.

For more information about adovbs.inc you might want to read our article What is Adovbs.inc and Why Do I Need It?

I keep getting an error that tells me "ADO could not find the specified provider." What does this mean and how do I fix it?

Basically this error usually means that ADO can't find the data provider that knows how to talk to the database you are trying to connect to. In order for ADO to work with any database, it needs to have a database provider that translates the ADO commands you execute to native code for the database in question.

Providers for a database usually get installed when you install the database itself. For example, if you want to use Access or Excel as a data source you probably won't have any problems if you already have Microsoft Office installed. The same goes for SQL Server if you're running it on your web server.

Where this can type of thing can be more of a problem is when you are connecting to SQL Server remotely and the SQL Server client machine (your web server) doesn't have an appropriate provider installed. To deal with this situation, Microsoft has packaged up the main data access components into a simple redistributable package that will install everything you need to connect to most Microsoft-based databases. It's called the Microsoft Data Access Components (MDAC) and can be downloaded from the Microsoft Universal Data Access Web Site and installed on your web server.

Another situation when you're likely to see this error message is when you're using a non-Microsoft database like Oracle or MySQL. Generally the easiest way to find a provider for any of these is to check the documentation in their website's support section. Look for a FAQ page or search for ODBC or ADO and you'll almost certainly come across a link to the appropriate download.

One last common cause of this type of error message is when you've really confused ADO. When you've got something really wrong with your database connection string sometimes ADO gets to the point where it assumes you must be doing something through a provider it simply doesn't understand and will throw this error. In this case, try taking a look at our article What's in an ADO Connection String? to try and get things straightened out.

Was your question not answered above?

Ask a new question

Please note: This form is only for submitting questions about the sample for us to consider including in the FAQ. If we feel the question merits inclusion, we will include it along with a reply. We will not respond to your email individually.


Home |  News |  Samples |  Articles |  Lessons |  Resources |  Forum |  Links |  Search |  Feedback

Internet.com
The Network for Technology Professionals

Search:

About Internet.com

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers