Ver Mensaje Individual
  #6  
Antiguo 14-12-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Como lo estas trabajando, me parece que tendrás que "limpiar" todos los puestos anteriores de un empleado y luego agregar los nuevos cargos, algo parecido a esto:
Código Delphi [-]
procedure TForm1.ModificarPuestos(const EmpID: Integer);
var
  i,Pid: Integer;
begin
  // Borrar los puestos anteriores de un empleado
  unQuery.Close;
  unQuery.SQL.Text := 'DELETE FROM ASIGNADO WHERE EMPLEADO_ID = :EID';
  unQuery.ParamByName('EID').AsInteger := EmpID;
  unQuery.ExecSQL;

  // Agregar los nuevos valores del CheckListBox
  unQuery.Close;
  unQuery.SQL.Clear;
  unQuery.SQL.Add('INSERT INTO ASIGNADO( EMPLEADO_ID, PUESTO_ID )');
  unQuery.SQL.Add('VALUES( :EID, :PID )');
  unQuery.Prepare;
  try
    for i := 0 to CheckListBox1.Items.Count - 1 do
      if CheckListBox1.Checked[i] then
      begin
        Pid := Integer(CheckListBox1.Items.Objects[i]);
        unQuery.ParamByName('EID').AsInteger := EmpID;
        unQuery.ParamByName('PID').AsInteger := Pid;
        unQuery.ExecSQL;
      end;
  finally
    unQuery.UnPrepare;
  end;
end;
Llamada ejemplo:
Código Delphi [-]
begin
  ModificarPuestos( SpinEdit1.Value );
...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita