ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Comando DM1.IBT1.CommitRetaining só grava após Horaio

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Renaldo72
Aprendiz
Aprendiz


Registrado: Domingo, 19 de Dezembro de 2004
Mensagens: 128

MensagemEnviada: Qui Abr 04, 2024 5:20 pm    Assunto: Comando DM1.IBT1.CommitRetaining só grava após Horaio Responder com Citação

Estou com um problema já alguns meses e não conseguir resolver ai vim pedir ajuda aos universitários. Rsrs

Nesses dois comandos abaixo 2 segundo grava normal e o primeiro não mas o mais estranho depois do horario definido para gerar diarias ele grava só antes que não e só afeta o o 1º comando o segundo continua gravando nos dois casos.


/////////////////////////////////////////////////////////////////////////////////////

1º - comando

SQLQuery := TIBQuery.Create(nil);
try
SQLQuery.Database := DM1.IBD1;
SQLQuery.Transaction := DM1.IBT1;
SQLQuery.SQL.Text := 'INSERT INTO DIARIA (DIA_CODENTRADA, DIA_CODAPARTAMENTO, DIA_DATAHINI, DIA_OBS, DIA_APTO, DIA_HOS, DIA_VALORT, DIA_QTEAD, DIA_TIPO, DIA_STATUS) ' +
'VALUES (:CODENTRADA, :CODAPARTAMENTO, :DATAHINI, :OBS, :APTO, :HOS, :VALORT, :QTEAD, :TIPO, :STATUS)';
SQLQuery.ParamByName('CODENTRADA').AsString := Edit1.Text;
SQLQuery.ParamByName('CODAPARTAMENTO').AsString := CodApartamento;
SQLQuery.ParamByName('DATAHINI').AsDateTime := DataTeste;
SQLQuery.ParamByName('OBS').AsString := 'DIARIA-E3M';
SQLQuery.ParamByName('APTO').AsString := EdApartamento.Text;
SQLQuery.ParamByName('HOS').AsString := EdHospede.Text;
SQLQuery.ParamByName('VALORT').AsFloat := StrToFloat(EdTotalGeral.Text);
SQLQuery.ParamByName('QTEAD').AsString := EdQtdAdultos.Text;
SQLQuery.ParamByName('TIPO').AsString := 'EA';
SQLQuery.ParamByName('STATUS').AsString := 'A';
SQLQuery.ExecSQL;
SQLQuery.Free;
except
on E: Exception do
begin
SQLQuery.Free;
Screen.Cursor := crDefault;
Application.MessageBox(Pchar('Houve um erro ao lançar a diária:' + #13#13 + E.Message), PChar(F_Principal.Nusua.Caption), MB_ICONERROR + MB_TOPMOST);
end;
end;

/////////////////////////////////////////////////////////////////////////////////////

2º - comando

DM1.IBS1.Close;
DM1.IBS1.SQL.Clear;
DM1.IBS1.SQL.Add('UPDATE Apartamento ' +
'SET ' +
'APA_Situacao =:P00, ' +
'APA_CodEntrada =:P01, ' +
'APA_Obs =:P02, ' +
'APA_PLACA =:P03, ' +
'APA_FUMA =:P04, ' +
'APA_FRIGO =:P05, ' +
'APA_DTE =:P06 ' +
'WHERE ' +
'APA_CodApartamento = :P07 ');
DM1.IBS1.Params[00].AsString := 'OCUPADO';
DM1.IBS1.Params[01].AsString := Edit1.Text;
if Hosp <> '' then
begin
DM1.IBS1.Params[02].AsString := EdHospede.Text;
end
else
begin
DM1.IBS1.Params[02].AsString := EdHospede.Text;
end;
DM1.IBS1.Params[03].AsString := DM1.HospedeHOS_PLACA.AsString;
DM1.IBS1.Params[04].AsString := '';
DM1.IBS1.Params[05].AsString := IntToStr(Dia);
DM1.IBS1.Params[06].AsString := DateToStr(Date);
DM1.IBS1.Params[07].AsString := CodApartamento;
try
DM1.IBS1.ExecQuery;
except
on E:Exception do
begin
DM1.IBDiariaF.CancelUpdates;
DM1.IBT1.RollbackRetaining;
Screen.Cursor := crDefault;
Gravalog('Log',F_Principal.Nusua.Caption,' HOUVE ERRO AO EXECUTAR ESSE PROCEDIMENTO DE CHECK-IN NO APTO');
Application.MessageBox(Pchar('2A - Executando esse procedimento Houve o seguinte erro :' + #13 + #13 + '"' + E.Message + '"'),Pchar(F_Principal.Nusua.Caption),MB_ICONEXCLAMATION + MB_TOPMOST);
exit;
end;
end;

//////////////////////////////////////////////////////////////////////
// para gravar

try
if LCDIA then
begin
(F_Principal.Nusua.Caption),MB_ICONEXCLAMATION + MB_TOPMOST);
DM1.IBDiariaF.ApplyUpdates;
end;
if not DM1.IBT1.InTransaction then
begin
DM1.IBT1.StartTransaction;
end;
MB_ICONEXCLAMATION + MB_TOPMOST);
DM1.IBT1.CommitRetaining;
except
on E: Exception do
begin
DM1.IBDiariaF.CancelUpdates;
DM1.IBT1.RollbackRetaining;
Screen.Cursor := crDefault;
Gravalog('Log', F_Principal.Nusua.Caption, 'HOUVE ERRO AO GRAVAR DIÁRIA NA TABELA');
Application.MessageBox(PChar('Houve um erro ao gravar diária na tabela:' + #13 + #13 + '"' + E.Message + '"'), PChar(F_Principal.Nusua.Caption), MB_ICONEXCLAMATION + MB_TOPMOST);
end;
end;

Desde já agradeço a ajuda para desvendar esse mistério para mim nem com a IA resolveu.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB