Editing a field when you have NOT done "select *" but rather "select column1, column2,
..." has a very large chance of updating the wrong columns. It'll do it if:
- Not all the primary key columns have been selected
- Not all of the multi-key columns have been selected
- Not all the fields have been selected (if there are no primary/multi keys)
Also, just about any query that selects from more than one table will fail. Maybe once in
a while freaky results would show up if two tables have all the same field names, but
it's not likely.
The solution to both these problems: Disable inline editing when it won't work. The second
case shouldn't be too hard - maybe simply parsing the query for "JOIN" and making sure
there's only one table after "FROM", maybe? For the first, (I think) the
CSqlTable::exec() query would need to know table information. That's well beyond my skill
:).
Hope this helps,
---------------
Adam Hooper
adamh@stripped