Ver Mensaje Individual
  #7  
Antiguo 15-12-2016
Belen12 Belen12 is offline
Miembro
NULL
 
Registrado: may 2016
Posts: 29
Reputación: 0
Belen12 Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
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
muchas gracias me sirvio de mucho anda perfecto, muchas gracias por tomarte el tiempo y ayudarme.
Responder Con Cita