A las transacciones les he puesto la opcion Read Commited (no tenia nada seleccionado) y he hecho los cambios que me has comentado, quedando el código así:
Código Delphi
[-]
QELIMINACALEN.SQL.CLEAR;
QELIMINACALEN.SQL.Add('DELETE FROM CALENDARIO WHERE CODIGO='+ CHR(39)+ CALENDARIO + CHR(39) ) ;
QELIMINACALEN.ExecSQL;
QELIMINACALEN.Transaction.Commit;
pero lo único que ha cambiado es que el mensaje que me salía en la base de datos me sale ahora en delphi
Además es que soy muy nuevo programando en delphi y no entiendo eso de "lock conflict on no wait transaction"....