Ver Mensaje Individual
  #4  
Antiguo 10-07-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Reputación: 25
__cadetill Va por buen camino
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
Responder Con Cita