>Hi,
>
>How to deal with deleting a record while someone else is using it undirectly.
>
>Example:
>
>I want to delete suppliers that has no more link to any tables but someone is making a invoice (private datasession, pessimistic buffering) with some of them.
>
>I have two choice for now.
>
>1. When I save my transaction, I will check again if the supplier is there and before deleting the supplier I will check if there is a new transaction when I save.
>
>Pro: Not blocking anyone
>Con: More Validation at saving, annoying for the user if it happen's
>
>2. Open in exclusive the suppliers table and blocking everyone to work with the system for that time.
>
>Pro: Best for keeping the integrity
>Con: Blocking anyone, annoying for the user
>
>I use the suppliers tables but there may be tables that block more/less the system.
>
>Is there any other ways?
>
>Those the RI check for buffering? I don't think so.
>
>Can I check tables involve in buffering even if it's not official yet?
>
>Thank you in advance for your answers
>
>Steve
You can RLOCK() supplier before deleting invoice. Also, you will RLOCK() supplier before deleting it in another form, so just one of users will go ahead.
Edward Pikman
Independent Consultant