I'm trying to define the Default record locking for a shared database, but it seems that that definition is user-based and not database-based. I mean, if i change that option in one user it doesen´t change the option for the other users.
Is that correct? If yes how can i define a comom policie for record locking on a enterprise-wide environment?
And in a mixed environment, how does behave the record locking mechanism, say, if i have two users, one with No Locks and other with All records, for example?
Thanks all for your responses. But I have another one re this subject. When I define form properties, i also have the option to define, at the form level, the locking mechanism, "no locks", "all records" and "edited record".
How does these forms options relate to the ones in Tools->Options->Advanced? What is their precedence? And what's happen if i have two diferents option at once?
In the world of SQL databases, "records are not locked." Applications shouldn't depend on a record being locked, shouldn't use live query views.
In SQL, so-called optimistic locking is used: locks are held only for a few milliseconds. The update procedure is, conceptually:
Lock this record and read it into memory.
See if the record was changed by someone else.
Raise an exception.
Apply changes to record.
Many SQL servers, particularly including Microsoft's (nee SyBase), are none-too-kind when it comes to locking. They will allow you to do many things but pay a dear performance price for it. There is definitely a "right way" and a "wrong way."