This is a very simple and reproducable exemple of a record locking mechanism failure.
Look at this and try (Marc).
unit Utestlock;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, OracleData, StdCtrls, Oracle;
type
TForm1 = class(TForm)...