Microsoft KB Archive/165884

= BUG: New Window Can Corrupt Data from Data Form Wizard Pages =

Article ID: 165884

Article Last Modified on 10/27/2006

-

APPLIES TO


 * Microsoft Visual InterDev 1.0 Standard Edition

-



This article was previously published under Q165884



SYMPTOMS
Data appears to be deleted, overwritten, or out of sync when the Data Form Wizard is used to create form-like pages using Active Server Pages (ASP). This occurs when two browser windows are open in Microsoft Internet Explorer. To create an additional browser window, click New Window on the File menu.



CAUSE
This problem occurs because pages that are created with the Data Form Wizard use only one recordset variable in each session of Internet Explorer, not each window. For additional information, see the "More Information" section.



RESOLUTION
The easiest solution is to double-click the Internet Explorer icon to open another instance of Internet Explorer rather than using the New Window command to create a new window.

A new window may be rendered inoperable programmatically by implementing a mechanism of semaphores, which allows only one window to modify the recordset during a session.

Another option is to redesign the output code so that it uses multiple recordset variables for each session, which is an expensive solution in terms of performance (memory and computational hit on the server).



STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.



Steps to Reproduce Behavior

 * 1) Users connect to the Web site, go to the page created with the Data Form Wizard, and select List view. (This view shows a brief summary of approximately 10 records at a time.)
 * 2) The user opens a new browser window so that he or she can get two things done at once. In Internet Explorer, the user clicks New Window on the File menu.
 * 3) In the original window, the user sees a record that he or she wants to edit (for example, BOB), and the user clicks on the BOB record to edit it in detail form.
 * 4) In the new window, the user decides that he or she wants to edit the record JANE, so the user clicks on the JANE record to edit it in detail form.
 * 5) In the original window, the user changes the name from BOB to ROBERT and clicks Update to update the data in the database.

If the user goes back to the list view (see step 1), the user sees that BOB's record name does not change, but JANE's record name changed to ROBERT, corrupting the data in the database.

