>Hi all,
>I just observed a TABLEUPDATE() behavior that suprised me.
>If a form has more than 36 controls and user edits 35 control values, TABLEUPDATE() fails. Using AERROR() the message "SQL String too long..." is reported.
>If user changes 1-34 controls or changes all controls, TABLEUPDATE() will work. Appending a blank record seems to be immune to the limit/TABLEUPDATE() failure.
>
>Evidently, VFP creates an SQL select... statement containing a list of all modified fields and this exceeds the 255 char string limit for SQL statements. (I think it's 255).
>
>Has anyone else observed this? Is there a way to commit changes without forcing with TABLEUPDATE(0,.t.)? I suppose a loop that finds all CURVAL() = OLDVAL() true and then forces a TABLEUPDATE would be a workaround. That doesn't seem too "elegant" tho.
>TIA,
>Bill
Are you seeing this with a view? With views you can change the UPDATE USING setting to use only the primary key of the table, and this shouls solve the problem. If it doesn't, you can mess around by rasing the the limit of WHERE clause complexity using SYS(3055).
Beyond that, you will be forced to do partial updates manually.
Erik Moore
Clientelligence