Bug #18915 The Famous Write Conflict Issue
Submitted: 9 Apr 2006 4:37 Modified: 11 Apr 2006 18:18
Reporter: [ name withheld ] Email Updates:
Status: Can't repeat Impact on me:
None 
Category:Connector / ODBC Severity:S2 (Serious)
Version:4.0.22 OS:Windows (XP witrh MS Acccess 2003 SP2)
Assigned to: CPU Architecture:Any

[9 Apr 2006 4:37] [ name withheld ]
Description:
A specific reproducable example of the Write Conflict Issue.

I've tried the suggestions in the FAQ but nothing worls.

How to repeat:
MySQL 4.0.22
MyODBC 3.51

CREATE TABLE `Test` (
  `Id` int(11) NOT NULL auto_increment,
  `Data` varchar(50) default NULL,
  `UpdateTime` timestamp(14) NOT NULL,
  PRIMARY KEY  (`Id`)
) TYPE=MyISAM PACK_KEYS=0;

INSERT INTO `Test` (`Id`, `foo`, `UpdateTime`) VALUES (1, 'Data', '20060408104452');

ODBC Options:
Don't Optimize Column Widths
Return Matching Rows

Link the Table to Access 2003 
Briowse the table and erase the 'foo' value in column 'Data' and then type in 'foo' again. The column is unchanged but still marked as "dirty" by Access. Attempt to save the record. The 'Write Conflict' Error appears..

Suggested fix:
Interestingly enough, he bug doesn't appear when the ODBC debug .dll (myodbc3d.dll v 3.51.4.0) is used.
[9 Apr 2006 5:11] [ name withheld ]
The following kludge works:

Add a DUMMY double column to the table:
ALTER TABLE `TableName` ADD `DUMMY` DOUBLE;

Create a text box called txtDUMMY on the form. Set the 'Visible' Property of the text box to False.

Add the following to the VB code of the form's On Dirty event:

Me.txtDUMMY.Value = Rnd()

Even if not pretty it works.
[11 Apr 2006 18:18] MySQL Verification Team
Thank you for the bug report. I was unable to repeat with Access 2003.

BTW I changed the test case from:

INSERT INTO `Test` (`Id`, `foo`, `UpdateTime`) VALUES (1, 'Data',
'20060408104452');

To

INSERT INTO `Test` (`Id`, `Data`, `UpdateTime`) VALUES (1, 'Foo',
'20060408104452');