>Sqlsetprop(han,"transactions",2)
>if tableupdate(2,.t.,"abc") and tableupdate(2,.t.,"xzy") && first returned .t. and second .f.
>** Now manually disconnect to test .
>SQLdisconnect(han)
You have NO call to SQLRollBack() here! If a table update fails you have to rollback. That's what "MANUAL" transactions means. I think the disconnect is doing a commit.
BOb