To illustrate this bug, I created a tiny demo.
Source code: http://dl.dropbox.com/u/2167512/bugs/un ... 111107.zip
Ready to run exe: http://dl.dropbox.com/u/2167512/bugs/unidac/exe.zip
Screenshot


Code: Select all
UniTable1.Options.StrictUpdate := false;AlexP wrote:Hello,
To update all equal records, you must set the StrictUpdate property to false:
If you need to update some specific record, you must add a unique field to your table and specify it in the KeyFields property.Code: Select all
UniTable1.Options.StrictUpdate := false;
AlexP wrote:Hello,
There is a unique key for each "rowid", "oid", or "_rowid_" line in SQLite, but if there are fields with the same names in the table, we cannot use these columns for data identification. That's why if there is no unique key in your table, you should use TUniQuery instead of TUniTable and choose rowid in the query explicitly:
UniQuery1.SQL.Text := 'Select rowid, t.* from a t';
AlexP wrote:Hello,
You can set the Visible property of the RowId column to False in directly in UniQuery
UniQuery1.FieldByName('rowid').Visible := false;
and in this case this field will not be displayed in Grid.
We will consider the possibility of adding support for automatic adding of RowId in UniTable in one of the future versions of UniDAC.