Ver Mensaje Individual
  #3  
Antiguo 10-07-2003
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Reputación: 21
mlara Va por buen camino
Hola. He querido continuar este hilo por que a mí me suceden algunas cosas "extrañas" muy parecidas.

En mi módulo de datos trabajo con dos componentes TIBTransaction, uno se llama IBTran, y el otro TIBTranLiq.

Tengo un TIBQuery llamado IBQ1 cuyo componente de transacción por defecto es IBTran, y un TIBQuery llamado IBEmpleados.

Voy a eliminar un empleado, pero antes necesito eliminar las referencias en otra tabla llamada "Afiliaciones".

Ahora hago lo siguiente:

Código:
CodigoEmpleado = IBEmpleados.FieldByName('Codigo').AsString;

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;
Bueno, resulta que inspecciono la variable CodigoEmpleado, y efectivamente tiene el valor que debe tener. Si ejecuto la sentencia:

Código:
DELETE FROM "Afiliaciones" WHERE "Empleado" = '12345'
(suponiendo que la variable CodigoEmpleado tuviera ese valor), desde IBConsole, y doy click en COMMIT TRANSACTION todo funciona, pero resulta que desde mi aplicación en Delphi, no elimina los registros correspondiente, por lo que se genera una excepción al ejecutar la siguiente sentencia DELETE.

Alguien podría ayudarme?

Muchas gracias.

PD.

1. La sentencia FluchBuffers es como ejecutar Commit?

2. Cuando un Commit en una transacción no se muestran los resultados en la otra (después de ejecutar los commits correspondientes). Qué puedo hacer en este caso?
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita