Improve company productivity with a Business Account.Sign Up

x
?
Solved

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

Posted on 2004-08-12
4
Medium Priority
?
1,072 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

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

I would like to start this tip/trick by saying Thank You, to all who said that this could not be done, as it forced me to make sure that it could be accomplished. :) To start, I want to make sure everyone understands the importance of utilizing p…
There is a wide range of advantages associated with the use of ASP.NET. This is why this programming framework is used to create excellent enterprise-class websites, technologies, and web applications.
Free Data Recovery software is an advanced solution from Kernel Tools to recover data and files such as documents, emails, database, media and pictures, etc. It supports recovery from physical & logical drive after a hard disk crash, accidental/inte…
Watch the video to learn how one can deal with PST file corruption issue with an outstanding Kernel for Outlook PST Repair Tool easily. Using this tool, non-technical users can swiftly perform the repair process to restore their essential data witho…

595 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