Como Deletar em sequencia ? Urgente....
Gostaria de uma pequena ajuda...estou tentando fazer uma transferência de funcionário..eu quero transferir o código de um funcionário para um outro código qq, só q existe um relacionamento com outras tabelas e quando eu começo a fazer a inclusão em série e umas das tabelas não tiver informações sobre este funcionário ela não da sequencia p/verificar se precisa incluir em outras tabelas tb.....e no final de tudo eu tenho q excluir as informações antigas das tabelas.....o q esta de errado ? estou fazendo assim:
procedure TfrmTransfFuncionario.btnTransferirClick(Sender: TObject);
begin
qryEmpresa.Close;
qryEmpresa.Params[0].AsInteger := iEmpresa;
qryEmpresa.Open;
{Dados Básicos}
qryFuncion.Close;
qryFuncion.Params[0].AsInteger := iEmpresa;
qryFuncion.Params[1].AsInteger := iMatricula;
qryFuncion.Open;
{Insere um novo registro}
qryFuncion.Append;
qryFuncion.FieldByName(´COD_EMP_FUNC´).AsInteger := iEmpresa;
qryFuncion.FieldByName(´MATRIC_FUNC´).AsInteger := iMatriculaNova;
qryFuncion.FieldByName(´NOME_FUNC´).AsString := sFuncionario;
qryFuncion.FieldByName(´DT_NASC_FUNC´).AsDateTime := dNascimento;
qryFuncion.FieldByName(´ENDERECO_FUNC´).AsString := sEndereco;
qryFuncion.FieldByName(´BAIRRO_FUNC´).AsString := sBairro;
qryFuncion.FieldByName(´CIDADE_FUNC´).AsString := sCidade;
qryFuncion.FieldByName(´UF_FUNC´).AsString := sUF;
qryFuncion.FieldByName(´CEP_FUNC´).AsString := sCEP;
qryFuncion.FieldByName(´TELEFONE_FUNC´).AsString := sTelefone;
{Faz Gravação}
qryFuncion.Post;
{Histórico Ocupacional}
qryHist_Oc.Close;
qryHist_Oc.Params[0].AsInteger := iEmpresa;
qryHist_Oc.Params[1].AsInteger := iMatricula;
qryHist_Oc.Open;
{Atualiza Variáveis}
iCodigoHO := qryHist_Oc.FieldByName(´COD_HOCUP´).AsInteger;
sObsHO := qryHist_Oc.FieldByName(´OBS_HOCUP´).AsString;
{Insere um novo registro}
qryHist_Oc.Append;
qryHist_Oc.FieldByName(´COD_EMP_HOCUP´).AsInteger := iEmpresa;
qryHist_Oc.FieldByName(´MATRIC_HOCUP´).AsInteger := iMatriculaNova;
qryHist_Oc.FieldByName(´COD_HOCUP´).AsInteger := iCodigoHO;
qryHist_Oc.FieldByName(´OBS_HOCUP´).AsString := sObsHO;
{Faz Gravação}
qryHist_Oc.Post;
qryAnt_Pess.Close;
qryAnt_Pess.Params[0].AsInteger := iEmpresa;
qryAnt_Pess.Params[1].AsInteger := iMatricula;
qryAnt_Pess.Open;
{Atualiza Variáveis}
iCodigoHPP := qryAnt_Pess.FieldByName(´COD_ANT_PESS´).AsInteger;
sObsHPP := qryAnt_Pess.FieldByName(´OBS_ANT_PESS´).AsString;
{Insere um novo registro}
qryAnt_Pess.Append;
qryAnt_Pess.FieldByName(´COD_EMP_ANT_PESS´).AsInteger := iEmpresa;
qryAnt_Pess.FieldByName(´MATRIC_FUNC_ANT_PESS´).AsInteger := iMatriculaNova;
qryAnt_Pess.FieldByName(´COD_ANT_PESS´).AsInteger := iCodigoHPP;
qryAnt_Pess.FieldByName(´OBS_ANT_PESS´).AsString := sObsHPP;
{Faz Gravação}
qryAnt_Pess.Post;
qryCondic.Close;
qryCondic.Params[0].AsInteger := iEmpresa;
qryCondic.Params[1].AsInteger := iMatricula;
qryCondic.Open;
sTabagCondic := qryCondic.FieldByName(´TABAG_CONDIC´).AsString;
sEtilisCondic := qryCondic.FieldByName(´ETILIS_CONDIC´).AsString;
sObsCondic := qryCondic.FieldByName(´OBSERVACOES_CONDIC´).AsString;
sObsCompl := qryCondic.FieldByName(´OBS_COMPL´).AsString;
{Insere um novo registro}
qryCondic.Append;
qryCondic.FieldByName(´COD_EMP_CONDIC´).AsInteger := iEmpresa;
qryCondic.FieldByName(´MATRIC_FUNC_CONDIC´).AsInteger := iMatriculaNova;
qryCondic.FieldByName(´TABAG_CONDIC´).AsString := sTabagCondic;
qryCondic.FieldByName(´ETILIS_CONDIC´).AsString := sEtilisCondic;
qryCondic.FieldByName(´OBSERVACOES_CONDIC´).AsString := sObsCondic;
qryCondic.FieldByName(´OBS_COMPL´).AsString := sObsCompl;
{Faz Gravação}
qryCondic.Post;
{Deleta Registro Anterior}
if (qryCondic.Locate(´COD_EMP_CONDIC´,iEmpresa,[])) and
(qryCondic.Locate(´MATRIC_FUNC_CONDIC´,iMatricula,[])) then qryCondic.Delete;
if (qryAnt_Pess.Locate(´COD_EMP_ANT_PESS´,iEmpresa,[])) and
(qryAnt_Pess.Locate(´MATRIC_FUNC_ANT_PESS´,iMatricula,[])) then qryAnt_Pess.Delete;
{Histórico Ocupacional}
if (qryHist_Oc.Locate(´COD_EMP_HOCUP´,iEmpresa,[])) and
(qryHist_Oc.Locate(´MATRIC_HOCUP´,iMatricula,[])) then qryHist_Oc.Delete;
{Dados Básicos}
if qryFuncion.Locate(´COD_EMP_FUNC;MATRIC_FUNC´,
VarArrayOf([iEmpresa, iMatricula]),[loPartialKey]) then qryFuncion.Delete;
pnlTransferir.Visible := False;
Close;
ShowMessage(´Transferência feita com Sucesso.´);
end;
procedure TfrmTransfFuncionario.btnTransferirClick(Sender: TObject);
begin
qryEmpresa.Close;
qryEmpresa.Params[0].AsInteger := iEmpresa;
qryEmpresa.Open;
{Dados Básicos}
qryFuncion.Close;
qryFuncion.Params[0].AsInteger := iEmpresa;
qryFuncion.Params[1].AsInteger := iMatricula;
qryFuncion.Open;
{Insere um novo registro}
qryFuncion.Append;
qryFuncion.FieldByName(´COD_EMP_FUNC´).AsInteger := iEmpresa;
qryFuncion.FieldByName(´MATRIC_FUNC´).AsInteger := iMatriculaNova;
qryFuncion.FieldByName(´NOME_FUNC´).AsString := sFuncionario;
qryFuncion.FieldByName(´DT_NASC_FUNC´).AsDateTime := dNascimento;
qryFuncion.FieldByName(´ENDERECO_FUNC´).AsString := sEndereco;
qryFuncion.FieldByName(´BAIRRO_FUNC´).AsString := sBairro;
qryFuncion.FieldByName(´CIDADE_FUNC´).AsString := sCidade;
qryFuncion.FieldByName(´UF_FUNC´).AsString := sUF;
qryFuncion.FieldByName(´CEP_FUNC´).AsString := sCEP;
qryFuncion.FieldByName(´TELEFONE_FUNC´).AsString := sTelefone;
{Faz Gravação}
qryFuncion.Post;
{Histórico Ocupacional}
qryHist_Oc.Close;
qryHist_Oc.Params[0].AsInteger := iEmpresa;
qryHist_Oc.Params[1].AsInteger := iMatricula;
qryHist_Oc.Open;
{Atualiza Variáveis}
iCodigoHO := qryHist_Oc.FieldByName(´COD_HOCUP´).AsInteger;
sObsHO := qryHist_Oc.FieldByName(´OBS_HOCUP´).AsString;
{Insere um novo registro}
qryHist_Oc.Append;
qryHist_Oc.FieldByName(´COD_EMP_HOCUP´).AsInteger := iEmpresa;
qryHist_Oc.FieldByName(´MATRIC_HOCUP´).AsInteger := iMatriculaNova;
qryHist_Oc.FieldByName(´COD_HOCUP´).AsInteger := iCodigoHO;
qryHist_Oc.FieldByName(´OBS_HOCUP´).AsString := sObsHO;
{Faz Gravação}
qryHist_Oc.Post;
qryAnt_Pess.Close;
qryAnt_Pess.Params[0].AsInteger := iEmpresa;
qryAnt_Pess.Params[1].AsInteger := iMatricula;
qryAnt_Pess.Open;
{Atualiza Variáveis}
iCodigoHPP := qryAnt_Pess.FieldByName(´COD_ANT_PESS´).AsInteger;
sObsHPP := qryAnt_Pess.FieldByName(´OBS_ANT_PESS´).AsString;
{Insere um novo registro}
qryAnt_Pess.Append;
qryAnt_Pess.FieldByName(´COD_EMP_ANT_PESS´).AsInteger := iEmpresa;
qryAnt_Pess.FieldByName(´MATRIC_FUNC_ANT_PESS´).AsInteger := iMatriculaNova;
qryAnt_Pess.FieldByName(´COD_ANT_PESS´).AsInteger := iCodigoHPP;
qryAnt_Pess.FieldByName(´OBS_ANT_PESS´).AsString := sObsHPP;
{Faz Gravação}
qryAnt_Pess.Post;
qryCondic.Close;
qryCondic.Params[0].AsInteger := iEmpresa;
qryCondic.Params[1].AsInteger := iMatricula;
qryCondic.Open;
sTabagCondic := qryCondic.FieldByName(´TABAG_CONDIC´).AsString;
sEtilisCondic := qryCondic.FieldByName(´ETILIS_CONDIC´).AsString;
sObsCondic := qryCondic.FieldByName(´OBSERVACOES_CONDIC´).AsString;
sObsCompl := qryCondic.FieldByName(´OBS_COMPL´).AsString;
{Insere um novo registro}
qryCondic.Append;
qryCondic.FieldByName(´COD_EMP_CONDIC´).AsInteger := iEmpresa;
qryCondic.FieldByName(´MATRIC_FUNC_CONDIC´).AsInteger := iMatriculaNova;
qryCondic.FieldByName(´TABAG_CONDIC´).AsString := sTabagCondic;
qryCondic.FieldByName(´ETILIS_CONDIC´).AsString := sEtilisCondic;
qryCondic.FieldByName(´OBSERVACOES_CONDIC´).AsString := sObsCondic;
qryCondic.FieldByName(´OBS_COMPL´).AsString := sObsCompl;
{Faz Gravação}
qryCondic.Post;
{Deleta Registro Anterior}
if (qryCondic.Locate(´COD_EMP_CONDIC´,iEmpresa,[])) and
(qryCondic.Locate(´MATRIC_FUNC_CONDIC´,iMatricula,[])) then qryCondic.Delete;
if (qryAnt_Pess.Locate(´COD_EMP_ANT_PESS´,iEmpresa,[])) and
(qryAnt_Pess.Locate(´MATRIC_FUNC_ANT_PESS´,iMatricula,[])) then qryAnt_Pess.Delete;
{Histórico Ocupacional}
if (qryHist_Oc.Locate(´COD_EMP_HOCUP´,iEmpresa,[])) and
(qryHist_Oc.Locate(´MATRIC_HOCUP´,iMatricula,[])) then qryHist_Oc.Delete;
{Dados Básicos}
if qryFuncion.Locate(´COD_EMP_FUNC;MATRIC_FUNC´,
VarArrayOf([iEmpresa, iMatricula]),[loPartialKey]) then qryFuncion.Delete;
pnlTransferir.Visible := False;
Close;
ShowMessage(´Transferência feita com Sucesso.´);
end;
Programadormaster
Curtidas 0