ASP Forum Application Errors

Hello guys..

Well, I've got a problem with one of the applications on a Community website I'm finishing up...I'll give the URL toward the end here..

My forum application (which I downloaded from was installed last week...had my hosting company set up the ODBC for me (it's running off of an Access 2000 database)...everything seems to work fine until I try to test the registration function of the's supposed to be connected to a ASP mail app, which I also don't have..that's my OTHER problem..everytime I try to register, I get this error:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.

/forum/register.asp, line 67

The databases are uploaded and connected, and they've been checked by techs there at the hosting company, so we know this isn't part of the problem..ODBC is all's something in the VB Script..
Could someone go in and tell me how to fix this problem in the code?  I'm fairly ignorant to ASP coding, so I'm clueless.  Also, I need to know where I can get a free form-to-e-mail program, AND also how to configure it to work with my forum application as well as two or three other basic mailto forms I have built on the site.  If someone can answer ALL of these, and everything works like a charm, I'll give 200 points.  :)

Website Address:
Forum Application:

Please, someone help!!! I've got to get this thing live within a month!!!
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

tgilbreathAuthor Commented:
Edited text of question.
Post the code for register.asp :-)
tgilbreathAuthor Commented:
Edited text of question.
Cloud Class® Course: C++ 11 Fundamentals

This course will introduce you to C++ 11 and teach you about syntax fundamentals.

tgilbreathAuthor Commented:
<title>ASP Resources Forum</title>
<script language="JavaScript">
<!-- hide from JavaScript-challenged browsers

function openWindow(url) {
  popupWin =, 'new_page', 'width=400,height=400')

// done hiding -->


      a:link   {color="#000080";text-decoration:underline}
      a:hover  {color:"red";text-decoration:underline}

<BODY bgColor="white" text="#000080" link="#000080"
      aLink=red vLink="red">
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 width=100%>
        <TD vAlign=top>
        <a href="default.asp"><IMG alt="ASP Resources Forums" border=0 src="bboard.gif" ></a>
        <TD align=right vAlign=top>
            <CENTER><FONT face="Verdana, Arial, Helvetica">
            <B>ASP Resources Forums</B><BR>
            <FONT size=1>
            <A href="profile.asp?mode=edit"><ACRONYM title="Edit your profile.">profile</ACRONYM></A>
            <A href="register.asp"><ACRONYM title="Registration is free!">register</ACRONYM></A>
            <A href="search.asp"><ACRONYM title="Perform a search by keyword, date, or name.">search</ACRONYM></A>
   <form action="/forum/register.asp?" method="post">      
    <SELECT NAME="Days">
    <OPTION value="1">Show topics from last day
    <OPTION value="2">Show topics from last 2 days
    <OPTION value="5">Show topics from last 5 days
    <OPTION value="10">Show topics from last 10 days
    <OPTION value="30">Show topics from last 30 days
    <OPTION value="60">Show topics from last 60 days
    <OPTION value="100">Show topics from last 100 days
    <OPTION value="365" >Show topics from the last year
    <input type=hidden name="cookie" value="true">
    <input type=submit value="Go">
<form action="register.asp?mode=doit" method="post">
<font face="Verdana, Arial, Helvetica">
<p><font size=4>Register For ASP Resources Forums</font></p>

<TABLE align=center border=0 cellPadding=1 cellSpacing=1 width=75%>
<font face="Verdana, Arial, Helvetica">All Fields mark with
      <FONT color=#ff0000 size=4><STRONG>*</STRONG></FONT>
      are required -</font>
   <TABLE bgColor=#b0c4de border=1 cellPadding=0 cellSpacing=0 width=100% background="" borderColor="#000000">
                    <TD width="50%"><font face="Verdana, Arial, Helvetica" size=2>User Name <FONT color=#ff0000>*</FONT></td>
                    <TD width="50%"><font face="Verdana, Arial, Helvetica" size=3>
                        <INPUT name="Name" size="30"  value=""> </td>
                    <TD><font face="Verdana, Arial, Helvetica" size=2>Password <FONT color=red face="">*</FONT></td>
                    <TD><font face="Verdana, Arial, Helvetica" size=3>
                        <INPUT name="password" type=password size="30" value="">
                        <INPUT name="password-d" type=hidden value=""></td>

                    <TD><font face="Verdana, Arial, Helvetica" size=2>Password Again <FONT color=#ff0000 face="">*</FONT></td>
                    <TD><font face="Verdana, Arial, Helvetica" size=3>
                        <INPUT name="password2" type=password size="30"></td>

                    <TD><font face="Verdana, Arial, Helvetica" size=2>Email Address <FONT color=#ff0000 face="">*</FONT></td>
                    <TD><font face="Verdana, Arial, Helvetica" size=3>
                        <INPUT  name="email" size="30" value=""></td>
                    <TD><font face="Verdana, Arial, Helvetica" size=2>Home Page </td>
                    <TD><font face="Verdana, Arial, Helvetica" size=3>
                        <INPUT name="homepage" size="30" value=""></td>
                    <TD><font face="Verdana, Arial, Helvetica" size=2>ICQ Number </td>
                    <TD><font face="Verdana, Arial, Helvetica" size=3>
                        <INPUT name="ICQ" size="30" value=""></td>                        
                    <TD><font face="Verdana, Arial, Helvetica" size=2>Country</td>
                    <TD><font face="Verdana, Arial, Helvetica" size=3>
                    <select name="Country" size="1">

         <OPTION selected VALUE="">

                        <OPTION VALUE="Albania">Albania
                        <OPTION VALUE="Algeria">Algeria
                        <OPTION VALUE="Andorra">Andorra
                        <OPTION VALUE="Angola">Angola
                        <OPTION VALUE="Anguilla">Anguilla
                        <OPTION VALUE="Antigua and Barbuda">Antigua and Barbuda
                        <OPTION VALUE="Argentina">Argentina
                        <OPTION VALUE="Armenia">Armenia
                        <OPTION VALUE="Aruba">Aruba
                        <OPTION VALUE="Australia">Australia
                        <OPTION VALUE="Austria">Austria
                        <OPTION VALUE="Azerbaijan">Azerbaijan
                        <OPTION VALUE="Azores">Azores
                        <OPTION VALUE="Bahamas">Bahamas
                        <OPTION VALUE="Bahrain">Bahrain
                        <OPTION VALUE="Bangladesh">Bangladesh
                        <OPTION VALUE="Barbados">Barbados
                          <OPTION VALUE="Belarus">Belarus
                        <OPTION VALUE="Belgium">Belgium
                        <OPTION VALUE="Belize">Belize
                        <OPTION VALUE="Benin">Benin
                        <OPTION VALUE="Bermuda">Bermuda
                        <OPTION VALUE="Bhutan">Bhutan
                        <OPTION VALUE="Bolivia">Bolivia
                        <OPTION VALUE="Borneo">Borneo
                        <OPTION VALUE="Bosnia and Herzegovina">Bosnia and Herzegovina
                        <OPTION VALUE="Botswana">Botswana
                        <OPTION VALUE="Brazil">Brazil
                        <OPTION VALUE="British Indian Ocean Territories">British Indian Ocean Territories
                        <OPTION VALUE="Brunei">Brunei
                        <OPTION VALUE="Bulgaria">Bulgaria
                        <OPTION VALUE="Burkina Faso (Upper Volta)">Burkina Faso (Upper Volta)
                        <OPTION VALUE="Burundi">Burundi
                        <OPTION VALUE="Camaroon">Camaroon
                        <OPTION VALUE="Cambodia (Kampuchea)">Cambodia (Kampuchea)
                        <OPTION VALUE="Canada">Canada
                        <OPTION VALUE="Canary Islands">Canary Islands
                        <OPTION VALUE="Cape Vere Islands">Cape Vere Islands
                        <OPTION VALUE="Cayman Island">Cayman Island
                        <OPTION VALUE="Central African Rep">Central African Rep
                        <OPTION VALUE="Chad">Chad
                        <OPTION VALUE="Chile">Chile
                        <OPTION VALUE="China">China
                        <OPTION VALUE="Christmas Island">Christmas Island
                        <OPTION VALUE="Colombia">Colombia
                        <OPTION VALUE="Comoros Islands">Comoros Islands
                        <OPTION VALUE="Congo, Democratic Republic of">Congo, Democratic Republic of
                        <OPTION VALUE="Costa Rica">Costa Rica
                        <OPTION VALUE="Croatia">Croatia
                        <OPTION VALUE="Cuba">Cuba
                        <OPTION VALUE="Cyprus">Cyprus
                        <OPTION VALUE="Czech Republic">Czech Republic
                        <OPTION VALUE="Denmark">Denmark
                        <OPTION VALUE="Djibouti">Djibouti
                        <OPTION VALUE="Dominica">Dominica
                        <OPTION VALUE="Dominican Republic">Dominican Republic
                        <OPTION VALUE="East Timor">East Timor
                        <OPTION VALUE="Ecuador">Ecuador
                        <OPTION VALUE="Egypt">Egypt
                        <OPTION VALUE="El Salvador">El Salvador
                        <OPTION VALUE="Equatorial Guinea">Equatorial Guinea
                        <OPTION VALUE="Eritria">Eritria
                        <OPTION VALUE="Estonia">Estonia
                        <OPTION VALUE="Ethiopia">Ethiopia
                        <OPTION VALUE="Falkland Islands">Falkland Islands
                        <OPTION VALUE="Faroe Islands">Faroe Islands
                        <OPTION VALUE="Fed Rep Yugoslavia">Fed Rep Yugoslavia
                        <OPTION VALUE="Fiji">Fiji
                        <OPTION VALUE="Finland">Finland
                        <OPTION VALUE="France">France
                        <OPTION VALUE="French Guiana">French Guiana
                        <OPTION VALUE="French Polynesia">French Polynesia
                        <OPTION VALUE="Fyro Macedonia">Fyro Macedonia
                        <OPTION VALUE="Gabon">Gabon
                        <OPTION VALUE="Gambia">Gambia
                        <OPTION VALUE="Georgia">Georgia
                        <OPTION VALUE="Germany">Germany
                        <OPTION VALUE="Ghana">Ghana
                        <OPTION VALUE="Gibraltar">Gibraltar
                        <OPTION VALUE="Greece">Greece
                        <OPTION VALUE="Greenland">Greenland
                        <OPTION VALUE="Grenada">Grenada
                        <OPTION VALUE="Guadeloupe">Guadeloupe
                        <OPTION VALUE="Guatemala">Guatemala
                        <OPTION VALUE="Guinea">Guinea
                        <OPTION VALUE="Guinea-Bissau">Guinea-Bissau
                        <OPTION VALUE="Guyana">Guyana
                        <OPTION VALUE="Haiti">Haiti
                        <OPTION VALUE="Honduras">Honduras
                        <OPTION VALUE="Hong Kong">Hong Kong
                        <OPTION VALUE="Hungary">Hungary
                        <OPTION VALUE="Iceland">Iceland
                        <OPTION VALUE="India">India
                        <OPTION VALUE="Indonesia">Indonesia
                        <OPTION VALUE="Iran">Iran
                        <OPTION VALUE="Iraq">Iraq
                        <OPTION VALUE="Ireland">Ireland
                        <OPTION VALUE="Israel">Israel
                        <OPTION VALUE="Italy">Italy
                        <OPTION VALUE="Ivory Coast">Ivory Coast
                        <OPTION VALUE="Jamaica">Jamaica
                        <OPTION VALUE="Japan">Japan
                        <OPTION VALUE="Jordan">Jordan
                        <OPTION VALUE="Kazakhstan">Kazakhstan
                        <OPTION VALUE="Kenya">Kenya
                        <OPTION VALUE="Kiribati">Kiribati
                        <OPTION VALUE="Korea">Korea
                        <OPTION VALUE="Kuwait">Kuwait
                        <OPTION VALUE="Kyrgyzstan">Kyrgyzstan
                       <OPTION VALUE="Laos">Laos
                        <OPTION VALUE="Latvia">Latvia
                        <OPTION VALUE="Lebanon">Lebanon
                        <OPTION VALUE="Lesotho">Lesotho
                        <OPTION VALUE="Liberia">Liberia
                        <OPTION VALUE="Libya">Libya
                        <OPTION VALUE="Liechtenstein">Liechtenstein
                        <OPTION VALUE="Lithuania">Lithuania
                        <OPTION VALUE="Luxembourg">Luxembourg
                        <OPTION VALUE="Macao">Macao
                        <OPTION VALUE="Madagascar">Madagascar
                        <OPTION VALUE="Malawi">Malawi
                       <OPTION VALUE="Malaysia">Malaysia
                      <OPTION VALUE="Maldives">Maldives
                        <OPTION VALUE="Mali">Mali
                        <OPTION VALUE="Malta">Malta
                        <OPTION VALUE="Martinique">Martinique
                        <OPTION VALUE="Mauritania">Mauritania
                        <OPTION VALUE="Mauritius">Mauritius
                        <OPTION VALUE="Mexico">Mexico
                        <OPTION VALUE="Moldova">Moldova
                        <OPTION VALUE="Monaco">Monaco
                        <OPTION VALUE="Mongolia">Mongolia
                        <OPTION VALUE="Montserrat">Montserrat
                        <OPTION VALUE="Morocco">Morocco
                        <OPTION VALUE="Mozambique">Mozambique
                        <OPTION VALUE="Myanmar (Burma)">Myanmar (Burma)
                        <OPTION VALUE="Namibia">Namibia
                        <OPTION VALUE="Naura">Naura
                        <OPTION VALUE="Nepal">Nepal
                        <OPTION VALUE="Netherlands">Netherlands
                        <OPTION VALUE="Netherlands Antilles">Netherlands Antilles
                        <OPTION VALUE="New Caledonia">New Caledonia
                        <OPTION VALUE="New Zealand">New Zealand
                        <OPTION VALUE="Nicaragua">Nicaragua
                        <OPTION VALUE="Niger">Niger
                        <OPTION VALUE="Nigeria">Nigeria
                        <OPTION VALUE="Niue">Niue
                        <OPTION VALUE="Norway">Norway
                        <OPTION VALUE="Oman">Oman
                        <OPTION VALUE="Pakistan">Pakistan
                        <OPTION VALUE="Panama">Panama
                        <OPTION VALUE="Papua New Guinea">Papua New Guinea
                        <OPTION VALUE="Paraguay">Paraguay
                        <OPTION VALUE="Peru">Peru
                        <OPTION VALUE="Philippines">Philippines
                        <OPTION VALUE="Pitcairn Island">Pitcairn Island
                        <OPTION VALUE="Poland">Poland
                        <OPTION VALUE="Portugal">Portugal
                        <OPTION VALUE="Qatar">Qatar
                        <OPTION VALUE="Republic of Korea">Republic of Korea
                        <OPTION VALUE="Reunion Island">Reunion Island
                        <OPTION VALUE="Romania">Romania
                        <OPTION VALUE="Russia">Russia
                        <OPTION VALUE="Rwanda">Rwanda
                        <OPTION VALUE="Saint Barthelemy">Saint Barthelemy
                        <OPTION VALUE="Saint Croix">Saint Croix
                        <OPTION VALUE="Saint Helena">Saint Helena
                        <OPTION VALUE="Saint Kitts and Nevis">Saint Kitts and Nevis
                        <OPTION VALUE="Saint Lucia">Saint Lucia
                        <OPTION VALUE="Saint Pierre and Miquelon">Saint Pierre and Miquelon
                        <OPTION VALUE="Saint Vincent and Grenadi">Saint Vincent and Grenadi
                        <OPTION VALUE="San Marino">San Marino
                        <OPTION VALUE="Sao Tome and Principe">Sao Tome and Principe
                        <OPTION VALUE="Saudi Arabia">Saudi Arabia
                        <OPTION VALUE="Senegal">Senegal
                        <OPTION VALUE="Seychelles">Seychelles
                        <OPTION VALUE="Sierra Leone">Sierra Leone
                        <OPTION VALUE="Singapore">Singapore
                        <OPTION VALUE="Slovakia">Slovakia
                        <OPTION VALUE="Slovenia">Slovenia
                        <OPTION VALUE="Solomon Islands">Solomon Islands
                        <OPTION VALUE="Somalia Northern Region">Somalia Northern Region
                        <OPTION VALUE="Somalia Southern Region">Somalia Southern Region
                        <OPTION VALUE="South Africa">South Africa
                        <OPTION VALUE="South Sandwich Islands">South Sandwich Islands
                        <OPTION VALUE="Spain">Spain
                        <OPTION VALUE="Sri Lanka">Sri Lanka
                        <OPTION VALUE="Sudan">Sudan
                        <OPTION VALUE="Suriname">Suriname
                        <OPTION VALUE="Swaziland">Swaziland
                        <OPTION VALUE="Sweden">Sweden
                        <OPTION VALUE="Switzerland">Switzerland
                        <OPTION VALUE="Syria">Syria
                        <OPTION VALUE="Taiwan">Taiwan
                        <OPTION VALUE="Tajikistan">Tajikistan
                        <OPTION VALUE="Tanzania">Tanzania
                        <OPTION VALUE="Thailand">Thailand
                        <OPTION VALUE="Togo">Togo
                        <OPTION VALUE="Tonga">Tonga
                        <OPTION VALUE="Trinidad and Tobago">Trinidad and Tobago
                        <OPTION VALUE="Tunisia">Tunisia
                        <OPTION VALUE="Turkey">Turkey
                        <OPTION VALUE="Turkmenistan">Turkmenistan
                        <OPTION VALUE="Turks and Caicos Islnd">Turks and Caicos Islnd
                        <OPTION VALUE="Tuvalu">Tuvalu
                        <OPTION VALUE="Uganda">Uganda
                        <OPTION VALUE="Ukraine">Ukraine
                        <OPTION VALUE="United Arab Emirates">United Arab Emirates
                        <OPTION VALUE="United Kingdom">United Kingdom
                        <OPTION VALUE="Uruguay">Uruguay
                        <OPTION VALUE="USA">USA
                        <OPTION VALUE="Uzbekistan">Uzbekistan
                        <OPTION VALUE="Vanuatu">Vanuatu
                        <OPTION VALUE="Vatican City">Vatican City
                        <OPTION VALUE="Venezuela">Venezuela
                        <OPTION VALUE="Vietnam">Vietnam
                        <OPTION VALUE="Virgin Islands (United Kingdom)">Virgin Islands (United Kingdom)
                        <OPTION VALUE="Wallis and Futuna Islands">Wallis and Futuna Islands
                        <OPTION VALUE="Western Sahara">Western Sahara
                        <OPTION VALUE="Western Samoa">Western Samoa
                        <OPTION VALUE="Yemen">Yemen
                        <OPTION VALUE="Zambia">Zambia
                        <OPTION VALUE="Zimbabwe (Rhodesia)">Zimbabwe (Rhodesia)        
                    <TD><font face="Verdana, Arial, Helvetica" size=2>Signature</td>
                    <TD><font face="Verdana, Arial, Helvetica" size=3>
                        <textarea name="sig" cols="30" rows=5></textarea></td>
      <td colspan=2 align="center"><INPUT type="submit" value="Submit"  name=submit1></td>
No, that's the code after the page has been parsed.  We need the actual ASP file.
tgilbreathAuthor Commented:
ahhh..of course...
however, I'll have to wait and get that to you later this evening..
I'm at work, and we have a firewall...I'm not able to FTP in to the server my site is on in LA...I'll post it this evening..:)
Perhaps, if you told us which particular application system you downloaded from  Also, if you customized it in anyway.
You also may want to contact your ISP and ask them what ASP email component they do support.  It's very uncommon that they wouldn't offer support for at least some mail component--

CDONTS, JMail, ASPEMail are some of the more common mailer components.
tgilbreathAuthor Commented:
If I'm not mistaken, it's ASP forum, under Applications..I'm not sure of can go to the address I first posted to see what  it looks, no modifications was modified by the hosting company somehow when the ODBC was added...
I downloaded the ASP forum code, and it appears that the IUSR anonymous account doesn't have enough access rights to the folder that contains the database.  

You need to have your ISP give create rights (RWXD) to the IUSR_MACHINENAME account on the folder that contains your database.  The account currently probably only has read access.  

Otherwise, you won't be able to update the database, and you'll get the error you're getting.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
tgilbreathAuthor Commented:
so what about integrating this forum app to the mail client?
that was the other issue..:)
Check line 67 in your register.asp and visit following link, it will help you...

PRB: ASP Returns 'Operation Must Use an Updateable Query' Error
most probably this is the reason...

The most common reason is that the Internet Guest account (IUSR_MACHINE) does not have Write permissions on the database file (.mdb). To fix this problem, use the Security tab in Explorer to adjust the properties for this file so that the Internet Guest account has the correct permissions. NOTE: When using Microsoft Access databases with ADO, it is also necessary to give the Internet Guest account Write permissions on the directory containing the .mdb file. This is because Jet creates an .ldb file to handle database locking.

the others are...

A second cause of this error is that the database was not opened with the correct MODE for writing. If you perform the Open on the Connection object, you use the Mode property to indicate the permissions on the connection as shown here:

      SQL = "UPDATE Products Set UnitPrice = 2;"
      Set Conn = Server.CreateObject("ADODB.Connection")
      Conn.Mode = 3      '3 = adModeReadWrite
      Conn.Open "myDSN"
NOTE: By default, the MODE is set to 0(adModeUnknown), which generally allows updates.

Another cause of this error is that the "Read Only" setting may be checked in the Options page for this DSN in the ODBC Manager.

The last issue and work around pertains to any SQL data source. The error can be caused by SQL statements that violate referential integrity of the database. Here are a few of the most common queries that fail:

The simplest group to deal with are those you cannot change: crosstab, SQL pass-through, union, or update (or make-table) action queries that have UniqueValue properties set to Yes.

Another very common cause is when the join includes linked ODBC tables that do not have unique indexes. In this case, there is no way for SQL to guarantee that records are unique in a table that has fields whose value will change with the query.

One cause does have a robust workaround. If you try to update a join field on the "one" side of a "one-to-many" query it will fail unless you turn on cascading updates. This way, you delegate referential integrity to the JET engine.


The board is available for download at:

It appears to be the lack of rights on the anonymous account.  Also one more reason that it could possibly fail would be inadequate rights on the jet temporary directories.

Here's a link for full details on what rights the anonymous account actually needs.

But back to your question about the email problem.

Find out what component your ISP supports for ASP based email.  If they support one, then it's no problem to alter the three scripts involved.  If they don't, however, you could be in for a little trouble and a bit of work.  The scripts involved in sending the email query the database and send the results of the query-- they're not just simple forward a form's contents to an address which is what most stock emailers handle.  You'd have to jump through hoops, if it's even possible, to get a stock email form handler to handle it.
tgilbreathAuthor Commented:
thanks for the help do I split the 200 points out to 100 each? :)
you cannot....

as you can see the time of clockwatcher
comment is just before mine, you can give all the points to clockwatcher ... (also, clockwatcher has explained the things well...)
tgilbreathAuthor Commented:
ah, ok..well, here you go clockwatcher..thanks for the help, both of you..:)
You can't but customer service can-- although now that you've accepted an answer to the question I'm not so sure.

If it comes up again and you'd like to split the points, simply post a question in the support area.  Customer service will post an answer to the question to keep it on file, and will then post separate questions for each of the people involved in the split.  Just include the question number as a reference to them.

Here's the link to customer service.

I'll post a question to see if I can get them to rearrange the points on this question.

I have been directed to this question by clockwatcher. Since the points on this question have already gone to him, I have posted a equal point question for manojamin so he can  claim the points.

Community Support @ Experts Exchange
Thanks clockwatcher, ianB, and tgilbreath!

I have answered the question posted by ianB.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.