MS SQL Server, Query timeout and locked records...

I use D3.02 with MSSQL Driver 4.51.  I work with TDatabase, TQuery objects,
using Cached Updates. I use the QueryTimeout parameter of the driver to
detect lock
records (btw, is there an other way to do it?).  When I try to update a
record already locked, if the timeout expires, I get the exception (fine!)
but it seems that connection has been lost.  I've tried to access the
connected property of the TDatabase object (MyQuery.database.connected)
just after the tieout expires and I get an access violation in the
de{*word*81}. If I cancel the updates and try to move to the first record of
the dataset (for example), I get a message "Connection to SQL Server has
been lost" .  How can I solve this?
I don't want users to wait until the record is unlocked but I didn't find
any other way to detect locked records...

Can somebody help or just give a clue?!

Thanks in advance!