chaseds
asked on
A Microsoft JET Database Engine error '80004005' but with a surprise twist!
Hello!
I recently migrated an ASP Classic site from a Windows 2003 32-bit server to a new Windows Server 2008 64-bit server. This site uses a jet database engine to connect to a Microsoft Access .mdb file located on the server hard drive. After setting up IIS 7.0 thusly:
1. Created a new AppPool to run 32-bit applications
2. Assigned write permissions to the directory where the database file is located for IUSR and NETWORK SERVICE users
3. Made sure the "Load User Profile" was set to False
I thought everything was working fine. I could read from the database and write to certain tables, but then I was greeted with this:
Microsoft JET Database Engine error '80004005'
You cannot add or change a record because a related record is required in table 'basket'.
/content/pages/change_bask et.asp, line 240
Line 240 is the objConn.Execute(SQL) statement in the code snippet
The frustrating part is that on the Windows Server 2003 machine, this worked perfectly! I haven't modified any code aside from the database path in the connection string. Any help would be greatly appreciated as I've officially run full-speed into a wall here. Thank you!
I recently migrated an ASP Classic site from a Windows 2003 32-bit server to a new Windows Server 2008 64-bit server. This site uses a jet database engine to connect to a Microsoft Access .mdb file located on the server hard drive. After setting up IIS 7.0 thusly:
1. Created a new AppPool to run 32-bit applications
2. Assigned write permissions to the directory where the database file is located for IUSR and NETWORK SERVICE users
3. Made sure the "Load User Profile" was set to False
I thought everything was working fine. I could read from the database and write to certain tables, but then I was greeted with this:
Microsoft JET Database Engine error '80004005'
You cannot add or change a record because a related record is required in table 'basket'.
/content/pages/change_bask
Line 240 is the objConn.Execute(SQL) statement in the code snippet
The frustrating part is that on the Windows Server 2003 machine, this worked perfectly! I haven't modified any code aside from the database path in the connection string. Any help would be greatly appreciated as I've officially run full-speed into a wall here. Thank you!
Rs.Open SQL, objConn, 1, 3
response.Write(sql&"<br>"&rs.recordcount&"<br>")
If Rs.RecordCount > 0 Then
SQL = "UPDATE basketitems SET quantity = "&Rs("quantity") + 1&" WHERE product_id = "&product_id&" AND product_title = '"&product_title&"' AND product_size_desc = '"&product_size_desc&"' AND product_size = "&product_size&" AND basket_id = "&Session("basket_id")&";"
Else
SQL = "INSERT INTO basketitems(product_id,product_title,product_size,product_size_desc,product_variation,product_colour,product_weight,our_price,rrp_price,quantity,basket_id,product_code,kittbuilder, customise_beanie) VALUES("&product_id&",'"&product_title&"',"&product_size&",'"&product_size_desc&"','"&product_variation&"','"&product_colour&"',"&product_weight&","&our_price&","&rrp_price&","&quantity&","&Session("basket_id")&",'"&product_code&"', "&kitbuilder_flag_insert&", "&customise_beanie&");"
'::: add basket id to kit orders :::
SQL_KB = "UPDATE kit_orders set basket_id = " & Session("basket_id") & " where id = " & product_id
objConn.Execute(SQL_KB)
':::
End If
'response.Write(sql)
'response.end
objConn.Execute(SQL)
End If
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Graye: I have the JetDB drivers installed, as I'm told that there is no 64-bit version. Thus, the 32-bit enabled AppPool. Also, the site connects to and displays the database information so that works.
As for the rest of the comments, I really appreciate all your input, but I managed to get it working by going back to an older version of the file. Turns out it was a relation issue I had screwed up and just never caught until it blew up. Thank you all for your help!
As for the rest of the comments, I really appreciate all your input, but I managed to get it working by going back to an older version of the file. Turns out it was a relation issue I had screwed up and just never caught until it blew up. Thank you all for your help!
<Turns out it was a relation issue I had screwed up and just never caught until it blew up. Thank you all for your help!>
What was the relation issue?
What was the relation issue?
ASKER
Hey LSM, sorry about the long wait. It initially seemed like a relation issue, but what it really was was a combination of things:
For starters, the only way to edit the database as of now was to transfer the file, edit it locally, and re-transmit it to the server. Doing this resulted in the error.
(Note: the file was placed in a folder with the correct permissions so naturally, it inherited them upon being placed in said folder. I verified this.)
The issue came about whenever we had to write something to the file, and ultimately it ended up being resolved by simply deleting the cache and cookie from the end-user's web browser. Strange, but true.
Thanks for your continued interest and I look forward to picking all your brains next time!
For starters, the only way to edit the database as of now was to transfer the file, edit it locally, and re-transmit it to the server. Doing this resulted in the error.
(Note: the file was placed in a folder with the correct permissions so naturally, it inherited them upon being placed in said folder. I verified this.)
The issue came about whenever we had to write something to the file, and ultimately it ended up being resolved by simply deleting the cache and cookie from the end-user's web browser. Strange, but true.
Thanks for your continued interest and I look forward to picking all your brains next time!
ASKER
LSMConsulting: Yes, so far this is the only SQL statement that gives me trouble. I have another statement that adds a record to a non-related table and that works fine. However, I fear that any other statement that has a one to many relation will also have this problem. This statement is integral to the entire site working.