Solved

I'm getting an "Optimistic concurrency check failed..." error.

Posted on 2004-08-12
4
1,032 Views
Last Modified: 2012-08-13
I'm getting the following error on one field of a form.  If that field is not modified, I don't get the error, but if it is, the data is not processed.

"Optimistic concurrency check failed.  The row was modified outside of this cursor."

I'm running a SQL Server backend, and the code works with an Access backend.  Can someone help me figure this one out?

Here's my code:  (The field that's erroring out is between the hypenated lines at the bottom.)

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%
Dim adoCon
Dim rsTask
Dim strSQL
Dim lngRecordNo

'Read in the record number to be updated
lngRecordNo = CLng(Request.QueryString("ID"))

'Create an ADO connection odject
Set adoCon = Server.CreateObject("ADODB.Connection")

adoCon.open "PROVIDER=SQLOLEDB;DATA SOURCE=***;UID=intranet_user;PWD=***;DATABASE=intranet"

'Create an ADO recordset object
Set rsTask = Server.CreateObject("ADODB.Recordset")

'Initialize the strSQL variable with an SQL statement to query the database
strSQL = "SELECT * FROM internal_tracking_system WHERE its_number=" & lngRecordNo

'Open the recordset with the SQL query
rsTask.Open strSQL, adoCon
%>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>ITS - Edit Task</title>
<link rel="stylesheet" type="text/css" href="/ids/intranet.css" />

<!--Date Input Mask-->
<!--#include virtual="/ids/scripts/date_mask.js"-->
<!--End of Date Input Mask-->

<script type="text/javascript">
function validateForm(form) {
if (form.reply_date.value == "") {
   alert("You must provide the reply date.");
   form.reply_date.focus( );
   return false;
   }
}
</script>

</head>

<body>

<!--#include virtual="/ids/includes/top.htm"-->


<!--Content-->
<div style="padding-top: 5px">

<table width="100%" style="background-color: #000080" cellpadding="5" cellspacing="0">
<tr>
<td width="125px"><a href="/ids/pages/administrator/its/add_task.asp" style="font-size: 11px; color: #FFFFFF; text-decoration: none">Create a New Task</a></td>
<td width="100px"><a href="/ids/pages/administrator/its/all_tasks.asp" style="font-size: 11px; color: #FFFFFF; text-decoration: none">View All Tasks</a></td>
<td width="100px"><a href="/ids/pages/administrator/its/open_tasks.asp" style="font-size: 11px; color: #FFFFFF; text-decoration: none">View Open Tasks</a></td>
<td width="55%">&nbsp;</td>
</tr>
</table>

<br />

<form name="add" method="post" action="update_record.asp">

<table align="center" width="55%" class="securitytable">
<tr valign="top">
<td><img src="/ids/graphics/swpa_vertical_logo.jpg" border="0" alt="logo" /></td>
<td><p style="font-size: 28px; font-weight: bold">Internal Tracking System</p><br /><hr style="color: #000080" /><p style="font-size: 14px; font-weight: bold">Office of the Administrator</p></td>
</tr>
<tr><td colspan="2">&nbsp;</td></tr>
<tr>
<td colspan="2">
<table align="center" width="100%">
<tr>
<td class="input_text">ITS Number: </td>
<td><input type="text" readonly="readonly" name="ID" value="<% = rsTask("its_number") %>" class="data" style="background-color: #99CCCC; border: 0" /></tr>
</tr>
<tr>
<td class="input_text" width="27%">Date Received:</td>
<td><input class="input" size="15"  maxlength="10" type="text" name="date_received" onfocus="javascript:vDateType='1'" onkeyup="DateFormat(this,this.value,event,false,'1')" onblur="DateFormat(this,this.value,event,true,'1')" value="<% = rsTask("date_received") %>" /></td>
<td class="input_text" width="20%">Received Via:</td>
<td align="center"><select name="method_received" class="input">
<option><% = rsTask("method_received") %></option>
<option>Email</option>
<option>Fax</option>
<option>Postal Mail</option>
</select></td>
</tr>
<tr>
<td class="input_text" width="30%">From:</td>
<td colspan="3"><input type="text" size="60%" name="received_from" maxlength="50" class="input" value="<% = rsTask("received_from") %>" /></td>
</tr>
<tr>
<td class="input_text" width="30%">Subject:</td>
<td colspan="3"><input type="text" size="60%" name="subject" maxlength="255" class="input" value="<% = rsTask("subject") %>" /></td>
</tr>
<tr>
<td class="input_text" width="30%">Responsible Party:</td>
<td colspan="3"><input type="text" size="60%" name="responsible_party" maxlength="50" class="input" value="<% = rsTask("responsible_party") %>" /></td>
</tr>
<tr>
<td class="input_text" width="30%">Response Due Date:</td>
<td><input class="input" size="15"  maxlength="10" type="text" name="due_date" onfocus="javascript:vDateType='1'" onkeyup="DateFormat(this,this.value,event,false,'1')" onblur="DateFormat(this,this.value,event,true,'1')" value="<% = rsTask("due_date") %>" /></td>
<td class="input_text" width="20%">Date Replied:</td>

-------------------------------------------------------------------------------------------------------------------------------

<td><input class="input" size="15" maxlength="10" type="text" name="reply_date" value="No Reply Yet" onfocus="javascript:vDateType='1'" onkeyup="DateFormat(this,this.value,event,false,'1')" onblur="DateFormat(this,this.value,event,true,'1')" /></td>

-------------------------------------------------------------------------------------------------------------------------------

</tr>
<tr>
<td class="input_text" width="30%" colspan="2">Details:</td>
</tr>
<tr>
<td colspan="4"><textarea name="details" class="ta" cols="98%" rows="10"><% = rsTask("details") %></textarea>
</tr>
<tr>
<td align="center" colspan="4"><input type="submit" name="Submit" value="Update Task" class="submit" /></td>
</tr>
</table>
</td>
</tr>
</table>

</div>

</body>
</html>
<%
'Reset server objects
rsTask.Close
Set rsTask = Nothing
Set adoCon = Nothing
%>
0
Comment
Question by:hogwild76
  • 2
4 Comments
 

Author Comment

by:hogwild76
ID: 11786065
Here's the update_record.asp page that the above form is calling.


<!--This file updates the selected record in the Internal Task System.-->
<%
Dim adoCon
Dim rsTask
Dim strSQL
Dim lngRecordNo
Dim rsTask1
Dim strSQL1

'Read in the record number to be updated
lngRecordNo = CLng(Request.Form("ID"))

'Create an ADO connection odject
Set adoCon = Server.CreateObject("ADODB.Connection")

'DSN-less connection
adoCon.open "PROVIDER=SQLOLEDB;DATA SOURCE=***;UID=intranet_user;PWD***;DATABASE=intranet"

'Create an ADO recordset object
Set rsTask = Server.CreateObject("ADODB.Recordset")

strSQL = "SELECT * FROM internal_tracking_system WHERE its_number=" & lngRecordNo

rsTask.CursorType = 2
rsTask.LockType = 3

rsTask.Open strSQL, adoCon

rsTask.Fields("date_received") = Request.Form("date_received")
rsTask.Fields("method_received") = Request.Form("method_received")
rsTask.Fields("received_from") = Request.Form("received_from")
rsTask.Fields("subject") = Request.Form("subject")
rsTask.Fields("responsible_party") = Request.Form("responsible_party")
rsTask.Fields("due_date") = Request.Form("due_date")
rsTask.Fields("reply_date") = Request.Form("reply_date")
rsTask.Fields("details") = Request.Form("details")

IF rsTask("reply_date")<>"No Reply Yet" THEN
adoCon.execute("update internal_tracking_system set status = 'Complete' where its_number="& rsTask("its_number") )
END IF

'Write the updated recordset to the database
rsTask.Update

'Reset server objects
rsTask.Close
Set rsTask = Nothing










'Create an ADO recordset object
Set rsTask1 = Server.CreateObject("ADODB.Recordset")

strSQL1 = "SELECT * FROM internal_tracking_system WHERE its_number=" & lngRecordNo

'Open the recordset with the SQL query
rsTask1.Open strSQL1, adoCon
%>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Internal Tracking System</title>
<link rel="stylesheet" type="text/css" href="/ids/intranet.css" />
</head>

<body>

<!--#include virtual="/ids/includes/top.htm"-->

<!--Content-->
<div style="padding-top: 5px">

<table width="100%" style="background-color: #000080" cellpadding="5" cellspacing="0">
<tr>
<td style="width: 125px"><a href="/ids/pages/administrator/its/add_task.asp" style="font-size: 11px; color: #FFFFFF; text-decoration: none">Create a New Task</a></td>
<td style="width: 100px"><a href="/ids/pages/administrator/its/all_tasks.asp" style="font-size: 11px; color: #FFFFFF; text-decoration: none">View All Tasks</a></td>
<td style="width: 100px"><a href="/ids/pages/administrator/its/open_tasks.asp" style="font-size: 11px; color: #FFFFFF; text-decoration: none">View Open Tasks</a></td>
<td style="width: 55%">&nbsp;</td>
</tr>
</table>

<br />

<!--#include virtual="/ids/pages/administrator/its/print.asp"-->

</div>

</body>
</html>
<%
'Reset server objects
rsTask1.Close
Set rsTask1 = Nothing
Set adoCon = Nothing
%>
0
 

Author Comment

by:hogwild76
ID: 11786303
Disregard this question.  I found the answer.

The problem was my

IF rsTask("reply_date")<>"No Reply Yet" THEN
adoCon.execute("update internal_tracking_system set status = 'Complete' where its_number="& rsTask("its_number") )
END IF

statement occuring before my RS update.  I moved it to after it, and it works fine.
0
 
LVL 11

Expert Comment

by:sciber_dude
ID: 11786752
You could post a question at "Community Support" and request that this question be deleted and refund u the points.

http://www.experts-exchange.com/Community_Support/

:) SD
0
 

Accepted Solution

by:
RomMod earned 0 total points
ID: 11790262
The question has been PAQ'd and the 75 points have been refunded.
RomMod
Community Support Moderator
0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

I have helped a lot of people on EE with their coding sources and have enjoyed near about every minute of it. Sometimes it can get a little tedious but it is always a challenge and the one thing that I always say is:  The Exchange of information …
Have you ever needed to get an ASP script to wait for a while? I have, just to let something else happen. Or in my case, to allow other stuff to happen while I was murdering my MySQL database with an update. The Original Issue This was written…
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now