I wrote this on forum, but then realized that System.Data.SQLite changned owner.
I think I stumbled upon strange bug with System.Data.SQL on Compact platform (Version 1.0.66.0 April 18, 2010).
Here is an example application: http://www.2shared.com/file/_uqZaa7_/dbtesstdbtestpda1.html
Erorr show up on TableAdapte.Update(). FormatException is raised with no aparent reason.
Here is code excerpt:
DataRow mRow = ((DataRowView)dm.bs_appconfig.Current).Row;
mRow.BeginEdit();
dm.bs_appconfig.EndEdit();
dm.appconfigTableAdapter.Update(dm.ds.appconfig);
As you may see, there is no actual change in current row. BeginEdit() is used just to set row status so there is reason for Update() to work.
After I lost all reasonable ideas, I decided to try to reproduce problem in applciation compoiled for desktop platform. Bingo! There was no problem. Desktop apllication worked fine.
That lead thac problem couse is with SQLite DLL compiled to CF.
I also found out workaround - I changed INSERT SQL command originally created by Designer.
Original was like
UPDATE [mytable]
SET [id] = @id, [title] = @title
WHERE (([id] = @Original_id) AND ((@IsNull_title = 1 AND [title] IS NULL) OR ([title] = @Original_title))
I made it simple:
UPDATE [mytable]
SET [id] = @id, [title] = @title
WHERE [id] = @Original_id
That solved a problem with FormatException.
I hope this is sufficient information to help finding bug.
<hr /><i>mistachkin added on 2011-10-11 05:34:21 UTC:</i><br />
The SQL statement in question is generated by the DbCommandBuilder class in the .NET Framework. I'm not sure where the FormatException is coming from.
<hr /><i>mistachkin added on 2011-11-13 21:53:56 UTC:</i><br />
Support for the compact framework will be ready for release 78 (i.e. the release after the upcoming one).
<hr /><i>mistachkin added on 2012-01-25 18:28:12 UTC:</i><br />
See ticket [343d392b51].
|