?
Solved

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

Posted on 2004-08-12
4
Medium Priority
?
1,056 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I was asked about the differences between classic ASP and ASP.NET, so let me put them down here, for reference: Let's make the introductions... Classic ASP was launched by Microsoft in 1998 and dynamically generate web pages upon user interact…
This demonstration started out as a follow up to some recently posted questions on the subject of logging in: http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_28634665.html and http://www.experts-exchange.com/Programming/…
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as form…
Suggested Courses

801 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