Bueno, no te funciona porque te falta cerrar las comillas, es decir, tienes que hacer la sentencia asi
Código:
IBQ1.SQL.Clear;
IBQ1.SQL.Add('DELETE FROM "Afiliaciones" WHERE "Empleado" = '''+CodigoEmpleado+'''');
IBQ1.ExecSQL;
IBTran.Commit;
IBQ1.SQL.Clear;
IBQ1.SQL.Add('DELETE FROM "Empleados" WHERE "Codigo" = '''+CodigoEmpleado+'''');
IBQ1.ExecSQL;
IBTran.Commit;
o bien
IBQ1.SQL.Clear;
IBQ1.SQL.Add('DELETE FROM "Afiliaciones" WHERE "Empleado" = '+QuotedText(CodigoEmpleado));
IBQ1.ExecSQL;
IBTran.Commit;
IBQ1.SQL.Clear;
IBQ1.SQL.Add('DELETE FROM "Empleados" WHERE "Codigo" = '+QuotedText(CodigoEmpleado));
IBQ1.ExecSQL;
IBTran.Commit;
Respecto a tu pregunta, sí, mas o menos se podria considerar que un FluchBuffers es como un Commit, pero no es exactamente lo mismo, ya que en un SGDB como IB puedes rechazar los cambios con un Rollback (lo contrario de Commit), pero no puedes hacerlo con PDOX. Si sales del programa o cierras la conexion, se realizaria el FluchBuffers de las tablas.
Despues de realizar un Commit, para ver esos cambios desde otra transaccion, necesitas hacer un Close y un Open del Dataset.
Por otra parte, si tienes que borrar registros de una tabla "ligados" al borrado de otra, te recomiendo que crees claves foraneas que te lo gestionen ellas mismas y asi te despreocupas (o bien un trigger que vendria a ser lo mismo)
Bueno, espero te sirva