Ya he solucionado mi problema. Pongo el código final para que sirva de ayuda si alguien lo necesita.
Código Delphi
[-]
try
DataSet.SQL.Clear;
DataSet.SQL.Add('SET AUTOCOMMIT = 0');
DataSet.Execute;
DataSet.SQL.Clear;
DataSet.SQL.Add('start transaction');
DataSet.Execute;
DataSet.SQL.Clear;
DataSet.SQL.Add('SELECT * FROM tabla LOCK IN SHARE MODE');
DataSet.Execute;
DataSet.SQL.Clear;
DataSet.SQL.Add('UPDATE tabla SET');
DataSet.SQL.Add('campoDB=datosAct');
DataSet.SQL.Add('WHERE condicion<>0');
DataSet.Execute;
DataSet.SQL.Clear;
DataSet.SQL.Add('commit');
DataSet.Execute;
DataSet.SQL.Clear;
DataSet.SQL.Add('SET AUTOCOMMIT = 1');
DataSet.Execute;
except
on E: Exception do begin
DataSet.SQL.Clear;
DataSet.SQL.Add('RollBack');
DataSet.Execute;
end;
end;
Si alguien ve alguna "irregularidad" en el código agradeceré cualquier comentario u opinión.
Un saludo!!!