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 

Como evitar cair na exception

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


Registrado: Domingo, 4 de Março de 2007
Mensagens: 23

MensagemEnviada: Sáb Jan 24, 2015 2:36 pm    Assunto: Como evitar cair na exception Responder com Citação

Pessoal tenho esse código aqui:

Citação:
procedure Tdm.DataModuleCreate(Sender: TObject);
var
CWinIni : TIniFile;
Caminho, vPath : String;
iqQuery : TIBQuery;
Travado : String[1];

begin
Caminho := ' ';
CaminhoCW := ' ';
Travado := 'N';
vPath := ExtractFilePath(Application.ExeName);
CWinIni := TIniFile.Create(vPath+'CWin.Ini');
Caminho := CWinIni.ReadString('Inicio', 'SRV', '');
CaminhoCW := CWinIni.ReadString('Inicio', 'SRVCW', '');


vgsTpOp := CWinIni.ReadString('Inicio', 'OPE', 'E');
vgsFazenda := CWinIni.ReadString('Inicio', 'FTP', 'azcomercio');
vgiCli_No := CWinIni.ReadInteger('Inicio', 'CNO', 0);
Cor_Apagar := CWinIni.ReadInteger('Inicio', 'CO', 0);


//Inicializar Gauge com qte de query's + 2
fmSplash.geSplash.MaxValue := 3;
fmSplash.geSplash.Progress := fmSplash.geSplash.Progress + 1;
fmSplash.Update;
ibSistema.DatabaseName := Caminho;
try
ibSistema.Open;

except

on E: Exception do Begin
Erro('Não foi possível abrir o banco de dados!'+#13+
'Contate o suporte.'+#13+#13+
'Erro: '+E.Message);
//Travado := 'S';
cWinIni.Free;
Application.Terminate;
end;
end;

//Inicializa Usuário ativo
iqUsuario.Open;
if dm.iqUsuario.IsEmpty then
//Travado := 'S';
dm.iqUsuario.Locate('Usu_Ativo','1',[]);

Usuario.Usu_Codigo := iqUsuarioUSU_CODIGO.Value;
Usuario.Usu_Nome := iqUsuarioUSU_NOME.Value;
Usuario.Usu_Ativo := iqUsuarioUSU_ATIVO.Value;
strUsuUF := iqUsuarioUSU_UF.Value;
strUsuLogoPrinc := ExtractFilePath(Application.ExeName)+'Logo_Principal.jpg';
iqUsuario.Close;
strUsu := IntToStr(Usuario.Usu_Codigo);

try
ibCW.DatabaseName := CaminhoCW;
ibCW.Open;
except
on E: Exception do Begin
Erro('Não foi possível abrir o check do sistema!'+#13+
'Contate o suporte.'+#13+#13+
'Erro: '+E.Message);
cWinIni.Free;
//Application.Terminate;
//Travado := 'S';
end;
end;
iqQuery := TIBQuery.Create(self);
iqQuery.Database := DM.ibCW;
iqQuery.Transaction := dm.itCW;
if Travado <> 'S' then begin
iqQuery.SQL.Clear;
iqQuery.SQL.Add('SELECT * FROM LICENCA ');
iqQuery.SQL.Add('Where (NOMEUSUARIO = '+''''+Usuario.Usu_Nome+''''+') ');
iqQuery.Open;
if iqQuery.eof then begin
Aviso('Usuário não cadastrado, contate o suporte!');
// Travado := 'S';
cWinIni.Free;
Application.Terminate;
end;
end;

if Travado = 'S' then begin //<mudei> iqQuery.FieldValues['PRAZO'] then begin
iqQuery.SQL.Clear;
iqQuery.SQL.Add('DELETE FROM LICENCA ');
iqQuery.SQL.Add('Where (NOMEUSUARIO = '+''''+Usuario.Usu_Nome+''''+') ');
iqQuery.ExecSQL;
iqQuery.SQL.Clear;
iqQuery.SQL.Add('INSERT INTO LICENCA ');
iqQuery.SQL.Add('(NOMEUSUARIO, PRAZO, TRAVA) ');
iqQuery.SQL.Add('VALUES ('+''''+Usuario.Usu_Nome+''''+', '+IntToStr(StrToInt(copy(DateTimeToStr(Now),7,4)+copy(DateTimeToStr(Now),4,2)+copy(DateTimeToStr(Now),1,2))-1)+', ''S'')');
iqQuery.ExecSQL;
iqQuery.Transaction.CommitRetaining;
Aviso('A licença de uso já era, contacte o suporte!');
cWinIni.Free;
Application.Terminate;
end;
end;

{ --- Fim da verificação de validade --- }
{ --- Inicializa Query's --- }

// Usuário
iqUsuario.SQL.Clear;
iqUsuario.SQL := SQLs.Usuario.Text;
fmSplash.lbOperacao.Caption := 'Preparando Cadastro de Usuário...';
iqUsuario.Prepare;
fmSplash.geSplash.Progress := fmSplash.geSplash.Progress + 1;
fmSplash.Update;
//Senhas
iqSenha.SQL.Clear;
iqSenha.SQL := SQLs.Senha.Text;
fmSplash.lbOperacao.Caption := 'Preparando Senha de Acesso...';
iqSenha.Prepare;
fmSplash.geSplash.Progress := fmSplash.geSplash.Progress + 1;
fmSplash.Update;
//Solicitando Login
fmSplash.lbOperacao.Caption := 'Solicitando Login';
fmSplash.Update;
end;





Toda vida o sistema cai na exception abaixo, o que fazer??

try
ibCW.DatabaseName := CaminhoCW;
ibCW.Open;
except
on E: Exception do Begin
Erro('Não foi possível abrir o check do sistema!'+#13+
'Contate o suporte.'+#13+#13+
'Erro: '+E.Message);
cWinIni.Free;
Application.Terminate;
//Travado := 'S';
end;
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Flavio_Ctba
Novato
Novato


Registrado: Quinta-Feira, 7 de Fevereiro de 2008
Mensagens: 94
Localização: Curitiba

MensagemEnviada: Dom Jan 25, 2015 6:00 pm    Assunto: Responder com Citação

Bom dia,

Veja se a sua variável CaminhoCW esta apontando certo para o Database.

Se estiver, post exatamente a mensagem de erro que o sistema esta retornado pra vc aqui no forum que dai fica mais facil ajudar.
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