Hi all,
I also got the error code [0x80040E38][Microsoft Cursor Engine] Row cannot be located for updating. Some values may have been changed since it was last read.
and I have solved my problem.
I had the following scenario (infopath 2003):
A manager opens an infopath 2003 formular and queries data to a forms data fields from a MS SQL database, he changed some values, signed the form and submitted it via mail to me (I am the admin). Then I opened the mail and the attached form, and submitted the data to the database. So the record changed.
This worked as the manager only once created the from and sent it one time. But if he created a second form (and queried the database again) before I submitted the first on, I could not send the second form to the database. So I had the idea to change the form template in that way, the record in the MS SQL database should be everytime overwitten, independed if the record in the MS SQL database changed in the meantime.
It is important to know that the form already saved the queried data in extra fields (and the data fields) because of the singature for a section and not the whole document. So I could move the extra fields to a group to be signed. After the manager signs the section (which is binded to the group to be signed) the "extra field" are not changeable anymore.
Now my solution:
I replaced the "Submit to database" Button with a new one with rules.
rule 1: query the data again before submitting. the datafield got now synchronized with the MS SQL database, but the extra fields still had the data, which I wanted to be submitted.
rule 2: write the values from the extra fields back to the data fields
rule 3: submit the datafields to the database.
Beste regards
Mathias Braun (mahimba)