Ir para conteúdo
Fórum Script Brasil
  • 0

Paradox Em Rede


Eder

Pergunta

Ola...pessoal....

tenho um programa que acessado pela rede....o problema que as vezes a maquina servidor esta desligada...IMPOSSIBILITANDO O ACESSO A BASE DE DADOS PARADOX, então o usuario da maquina de rede quer usar o programa...e ai ao clicar no programa da o erro:

EXCEÇÃO EDBENGINERROR NO MODELU FATURA.EXE EM 00091AD2

INVALID FILE NAME

teria como substituir esta mensagem acima....por uma outra...tipo:

"O SERVIDOR ESTA DESLIGADO" ????

Grato

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

tem sim amigo, você teria q fazer o seguinte...

"Capturar os erros do programar e repassar para usuário da forma que achar melhor"

Adicione o componente chamado "ApplicationEvents" que fica na paleta Additional

Nomeie ele para appevents para ficar mais fácil de se utilizá-lo

Nos eventos desse componente, tem lá OnException

então nesse evento você adiciona...

exemplo:

procedure TForm1.appeventsException(Sender: TObject; E: Exception);

begin

  if (E is EDBENGINERROR) then

  begin

    Application.MessageBox(

    'Servidor está desligado bla bla bla'+#13+

    'Nome do seu Programa - Erro', MB_OK + MB_ICONERROR);

  //enfim coloque o q tiver pra fazer aqui quando ocorrer este erro

  end;

end;

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

tem outra maneira sim, criando manualmente as funções...

abaixo da seção private adicione

procedure appOnException(Sender: TObject; E: Exception);

ficando mais ou menos isso:

private

procedure appOnException(Sender: TObject; E: Exception);

agora você cria a procedure, pode-se usar como falei no post anterior

implementation

{$R *.dfm}

procedure TNomedoForm.appOnException(Sender: TObject; E: Exception);

begin

if (E is EDBENGINERROR) then

begin

Application.MessageBox(

'Servidor está desligado bla bla bla'+#13+

'Nome do seu Programa - Erro', MB_OK + MB_ICONERROR);

//enfim coloque o q tiver pra fazer aqui quando ocorrer este erro

end;

end;

agora no Evento onCreate do FORM PRINCIPAL DO PROGRAMA

adicione

Application.OnException := appOnException;

ficando mais ou menos isso

procedure TNomedoForm.FormCreate(Sender: TObject);

begin

Application.OnException := appOnException;

end;

pronto, agora qualquer exceção que ocorrer na aplicação você pode

tratar na procedure que foi criada: appOnException

espero q isso resolva

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

amigo....fiz o que você me indicou.........mas deu um errinho:

parece que falta algo:

[Error] usuario.pas(50): Undeclared identifier: 'EDBENGINERROR'

O começo da unit ta abaixo, please, veja:

unit usuario;

interface

uses
  Windows, Messages, dbiprocs, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, XiButton, XiPanel, StdCtrls, Db, DBTables, GestEdit, ComCtrls;

type
  TForm22 = class(TForm)
    Label2: TLabel;
    XiPanel1: TXiPanel;
    XiButton1: TXiButton;
    XiButton2: TXiButton;
    Label1: TLabel;
    Edit1: TFilterAlignEdit;
    Edit2: TEdit;
    Timer1: TTimer;
    Label3: TLabel;
    XiPanel2: TXiPanel;
    Timer2: TTimer;
    procedure XiButton1Click(Sender: TObject);
    procedure XiButton2Click(Sender: TObject);
    procedure Edit2Exit(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
  procedure appOnException(Sender: TObject; E: Exception); //tratamento de erros

    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form22: TForm22;

implementation

uses Senha, principal;

{$R *.DFM}

procedure TForm22.appOnException(Sender: TObject; E: Exception);
begin
if (E is EDBENGINERROR) then
begin
Application.MessageBox(
'Servidor está desligado bla bla bla'+#13+
'Nome do seu Programa - Erro', MB_OK + MB_ICONERROR);
//enfim coloque o q tiver pra fazer aqui quando ocorrer este erro
end;
end;

biggrin.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Kiko.......beleza....perdão cara...nem percebi....

Cara...agora pra fechar.......

ta dando erro aqui no codigo abaixo:

[Error] usuario.pas(54): Incompatible types: 'Integer' and 'PChar'

procedure TForm22.appOnException(Sender: TObject; E: Exception);

begin

if (E is EDBENGINEERROR) then

begin

Application.MessageBox(

'Servidor está desligado bla bla bla'+#13+

'Nome do seu Programa - Erro', MB_OK + MB_ICONERROR);

end;

end;

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - eder -

Beleza...Kiko....certo...funcionou...legal...

Obrigado CHURC E KIKO pela ajuda....foi muito útil.....muito grato mesmo...

Valeu..Galera t+ fw

biggrin.gif

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...