Ver Mensaje Individual
  #3  
Antiguo 24-11-2012
CSIE CSIE is offline
Miembro
 
Registrado: feb 2008
Ubicación: Universo paralelo
Posts: 69
Reputación: 17
CSIE Va por buen camino
Hola,

A simple vista, hay tres datasets, pero solo haces "open" de uno de ellos.

Después veo que no estructuras bien el código, algo más lógico sería:

Código Delphi [-]
 if dm.IBDataSet_carrera.Active then
   begin
    if DM.IBDataSet_carrera.Locate('id_carrera',DM.IBQuery_carreraID_carrera.Value,[]) then 
    begin
        DM.IBDataSet_carrera.Edit;
        DM.IBDataSet_carreraESTADO.Value:=1;
        DM.IBDataSet_carrera.Post;
    end;

y por último, sería más rápido y lógico usar sentencias SQL del tipo "UPDATE carrera SET ESTADO=1 WHERE id_carrera=:id_carrera", en vez de datasets.

Además deberías de tener en cuenta el uso de triggers en la DB, por ejemplo, si cuando activas el ESTADO de la tabla CARRERAS siempre tienes que actualizar el ESTADO de las otras dos tablas (PLAN_ESTUDIOS y MATERIA).

Saludos
Responder Con Cita