Fórum Ajuda para melhorar o código de conexão e atualização do banco #588693
10/11/2017
0
procedure TFrmPrincipal.BtnAtualizaClick(Sender: TObject);
var
com_erro : boolean;
mostra_erro : boolean;
arquivo, str : String;
codigo, cnpjcpf : String;
FD : TextFile;
begin
com_erro := false;
mostra_erro := TRUE;
BtnAtualiza.Enabled := False;
BtnSair.Enabled := False;
if strtofloat(Troca_Val_Ponto(versao_atual_lida)) = StrToFloat( Troca_Val_Ponto(nova_versao)) then
begin
Application.messagebox ('Esta versão já foi aplicada nesta máquina.'+#13+'IMPOSSÍVEL CONTINUAR!','AVISO!!!',MB_OK + MB_ICONERROR);
Label1.Caption := '';
BtnSair.Enabled := true;
exit;
end;
if not checa_versoes() then
begin
BtnSair.Enabled := true;
exit;
end;
try
BtnSair.Enabled := False;
Label1.Caption := 'Aguarde Atualizando...';
Application.ProcessMessages;
sleep(1000);
if FileExists('C:\\POSTO_NOVO\\DADOS\\POSTO.FDB') then
begin
FDNum_Conexoes.Active := False;
FDNum_Conexoes.Active := True;
if not (FDNum_ConexoesCONEXOES.Value = 1) then
Begin
Application.messagebox ('Existe mais de um usuário conectado.','Aviso!',MB_OK + MB_ICONEXCLAMATION);
Label1.Caption := '';
BtnSair.Enabled := False;
BtnAtualiza.Enabled := TRUE;
exit;
end;
Try
FDConnection.Connected := false;
FDConnection.Connected := true;
FDConnection.StartTransaction;
Label1.Caption := 'Módulo 01...';
Application.ProcessMessages;
FDScript1.ExecuteAll;
SLEEP (500);
except
on E:Exception do
begin
if mostra_erro then
Application.messagebox (pchar('ERRO: '+E.message
+#13+'COMUNIQUE AO CPD ESTA MENSAGEM.'),'AVISO!!!',MB_OK + MB_ICONERROR);
com_erro := true;
raise;
end;
end;
Try
FDConnection.Connected := false;
FDConnection.Connected := true;
FDConnection.StartTransaction;
Label1.Caption := 'Módulo 02...';
Application.ProcessMessages;
FDScript2.ExecuteAll;
SLEEP (500);
except
on E:Exception do
begin
if mostra_erro then
Application.messagebox (pchar('ERRO: '+E.message
+#13+'COMUNIQUE AO CPD ESTA MENSAGEM.'),'AVISO!!!',MB_OK + MB_ICONERROR);
com_erro := true;
raise;
end;
end;
Try
FDConnection.Connected := false;
FDConnection.Connected := true;
FDConnection.StartTransaction;
Label1.Caption := 'Módulo 03...';
Application.ProcessMessages;
FDScript3.ExecuteAll;
SLEEP (500);
except
on E:Exception do
begin
if mostra_erro then
Application.messagebox (pchar('ERRO: '+E.message
+#13+'COMUNIQUE AO CPD ESTA MENSAGEM.'),'AVISO!!!',MB_OK + MB_ICONERROR);
com_erro := true;
raise;
end;
end;
Try
FDConnection.Connected := false;
FDConnection.Connected := true;
FDConnection.StartTransaction;
Label1.Caption := 'Módulo 04...';
Application.ProcessMessages;
FDScript4.ExecuteAll;
SLEEP (500);
except
on E:Exception do
begin
if mostra_erro then
Application.messagebox (pchar('ERRO: '+E.message
+#13+'COMUNIQUE AO CPD ESTA MENSAGEM.'),'AVISO!!!',MB_OK + MB_ICONERROR);
com_erro := true;
raise;
end;
end;
if (not com_erro) and (FDConnection.InTransaction) then
begin
FDConnection.CommitRetaining;
Label1.Caption := '';
end;
end;
Grava_chave_reg ('Posto', 'Versao', nova_versao, g_nome_ini);
Grava_chave_reg ('PathDados', 'Posto', path, g_nome_ini);
Label1.Caption := 'Processo Concluido...';
finally
BtnSair.Enabled := True;
Application.ProcessMessages;
BtnSair.Enabled := True;
end;
BtnSair.Enabled := True;
end;
Emanuel Gonçalves
Curtir tópico
+ 0Posts
10/11/2017
Luiz Vichiatto
Se a exceção encerrar, ou não permitir, você pode colocar uma única encerrando a tratativa de todo o conjunto, ficando apenas com a mensagem de erro da exception, neste caso é melhor utilizar transaction, assim realiza o rollback.
Procure fazer todas as validações e bloqueios antes de iniciar o processamentos, isso reduz código
Crie uma função na abre e fecha exemplo.
procedure TFrmPrincipal.BtnAtualizaClick(Sender: TObject);
var
com_erro : boolean;
mostra_erro : boolean;
arquivo, str : String;
codigo, cnpjcpf : String;
FD : TextFile;
// procedure local, somente procedure TFrmPrincipal.BtnAtualizaClick(Sender: TObject), poderá utilizar.
procedure FechaAbre(Tobject : oObjeto)
oObjeto.Connected := False;
oObjeto.Connected := true;
end
begin
//...... continua código
if FileExists('C:\\\\POSTO_NOVO\\\\DADOS\\\\POSTO.FDB') then
begin
FechaAbre(FDNum_Conexoes.Active)
//...... continua código
end;
E vai refatorando, até que irá ter um código mais enxuto possível....
Espero ter ajudado.
Gostei + 0
11/11/2017
Emanuel Gonçalves
Se a exceção encerrar, ou não permitir, você pode colocar uma única encerrando a tratativa de todo o conjunto, ficando apenas com a mensagem de erro da exception, neste caso é melhor utilizar transaction, assim realiza o rollback.
Procure fazer todas as validações e bloqueios antes de iniciar o processamentos, isso reduz código
Crie uma função na abre e fecha exemplo.
procedure TFrmPrincipal.BtnAtualizaClick(Sender: TObject);
var
com_erro : boolean;
mostra_erro : boolean;
arquivo, str : String;
codigo, cnpjcpf : String;
FD : TextFile;
// procedure local, somente procedure TFrmPrincipal.BtnAtualizaClick(Sender: TObject), poderá utilizar.
procedure FechaAbre(Tobject : oObjeto)
oObjeto.Connected := False;
oObjeto.Connected := true;
end
begin
//...... continua código
if FileExists('C:\\\\\\\\POSTO_NOVO\\\\\\\\DADOS\\\\\\\\POSTO.FDB') then
begin
FechaAbre(FDNum_Conexoes.Active)
//...... continua código
end;
E vai refatorando, até que irá ter um código mais enxuto possível....
Espero ter ajudado.
Gostei + 0
11/11/2017
James
qualidade, passaporte real, visto, carta de condução, cartões de identidade, certificados de casamento,
Diplomas. Somos uma equipe de profissionais com muitos anos de experiência na produção de
e passaportes falsos e outros documentos de identidade, os melhores produtores de qualidade real e
documentos falsos. Com mais de milhões de documentos circulando no mundo.
Nós oferecemos apenas passaporte verdadeiramente falso original de primeira qualidade, carta de condução,
Cartões de identificação, selos, certificados de nascimento, diplomas falsos internacionais e outros produtos para um
número de países como EUA, Austrália, Bélgica, Brasil, Noruega, Canadá, Itália, Finlândia,
França, Alemanha, Israel, México, Holanda, África do Sul, Espanha, Reino Unido.
Está lista não está completa.
Para obter mais informações e colocar à direita
entre em contato conosco por e-mail ou whatsapp.
contato. smithproductionltd@gmail.com
Whatsapp ....... + 61 411 679 961
ou
Whatsapp ....... + 44 745 924 7070
Website ........ http: //www.buypassportsonline.info
Entre em contato conosco via e-mail ou whatsapp a qualquer momento e com qualquer critério.
TÓPICOS:
COMPRAR passaportes falsos
Obter o passaporte dos EUA (Estados Unidos)
Compre seus passaportes australianos (Austrália)
Obter o seu passaporte belga (Bélgica)
Obtenha seus passaportes do Reino Unido (Reino Unido)
Compre seu passaporte russo (Rússia)
Obter o seu passaporte da Hungria (Hungria)
Obtenha seu passaporte da Austrália (Austrália)
Compre seu passaporte croata (Croácia)
Obter o seu passaporte da Dinamarca (Dinamarca)
Obtenha seu passaporte para Malta (Malta)
Obter o seu passaporte polonês (Polônia)
Compre seu passaporte sueco (Suécia)
etc.
Compre seus cartões de identificação
Compre sua ID US (Estados Unidos)
Compre seu ID de Austrália (Austrália)
Compre seu ID de Bélgica (Bélgica)
Compre seu ID do Brasil (Brasil)
Os canadenses compram documentos falsos (Canadá)
Compre seu ID francês (França)
Obtenha sua ID para o alemão (Alemanha)
Compre seu ID de espanhol (Espanha)
Compre seu ID (México)
Compre seus cartões de identificação África do Sul (África do Sul)
Compre seu ID Swiss (Suíça)
Obtenha sua ID para o alemão (Alemanha)
Compre seu ID de China (China)
Compre seu ID da Rússia (Rússia)
Compre seu ID de Hungria (Hungria)
Compre seu ID de Austrália (Austrália)
Compre seu ID do Brasil (Brasil)
Compre seu ID italiano (Itália)
Compre seu ID Jamaica (Jamaica)
Compre sua ID Coreia do Sul (Coréia do Sul)
Compre sua identidade sueca (Suécia)
etc.
COMPRA LICENÇA DE CONDUTORES FALSOS
Compre uma licença na Austrália (Austrália)
Compre licenças de motorista canadense (Canadá)
Compre sua carta de condução francesa (França)
Compre sua licença Dutch (Netherlands / Netherlands)
Compre sua carta de condução alemã (Alemanha)
Compre sua licença do Reino Unido (Reino Unido)
Compre sua carteira de motorista na Suíça (Suíça)
Compre sua carta de condução cambojana (Camboja)
Compre uma licença da Austrália (Austrália)
Compre sua licença da Rússia (Rússia)
Compre licenças de motorista canadense (Canadá)
Compre sua carta de condução francesa (França)
Compre sua Permissão de condução internacional
Compre sua carteira de motorista dos EUA
Compre sua carta de condução espanhola (Espanha)
Compre sua carta de condução Português (Portugal)
Compre sua permissão de condução Hungarian (Hungary)
Compre uma carteira de motorista
Compre sua carta de condução francesa (França)
Compre sua carta de condução alemã (Alemanha)
Compre sua licença do Reino Unido (Reino Unido)
Compre sua licença Noruega (Noruega)
Compre uma licença do Brasil (Brasil)
Compre sua licença Dinamarca (Dinamarca)
CONTATE-NOS
Whatsapp ....... + 61 411 679 961
Whatsapp ....... + 44 745 924 7070
Contato com o email: (smithproductionltd@gmail.com)
site http://www.buypassportsonline.info
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)