[firebase-br] Ref. Conexão mais rapida

Rodrigo dominio em engeplus.com.br
Ter Dez 23 10:09:49 -03 2008


Bom dia,

Eu faço assim, criei um form que abre antes de tudo:

unit UVerProcessos;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,TLHelp32, StdCtrls;

type
  TFVerProcessos = class(TForm)
    ListBox1: TListBox;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
        procedure ProcProcesso(Process: TStrings);

  public
    { Public declarations }
  end;

var
  FVerProcessos: TFVerProcessos;

implementation

{$R *.dfm}

procedure TFVerProcessos.ProcProcesso(Process: TStrings);
var ContinueLoop: BOOL;
    FSnapshotHandle: THandle;
    FProcessEntry32: TProcessEntry32;
begin
     FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
     FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
     ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
     while ContinueLoop {and (not Boolean(Result))} do
     begin
     Process.Add(FProcessEntry32.szExeFile);
     ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
     end;
     end;
     function FindProcess(ProcessName: string): DWORD;
     var ContinueLoop: BOOL;
     FSnapshotHandle: THandle;
     FProcessEntry32: TProcessEntry32;
     begin
     Result := 0;
     FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
     FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
     ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
     while ContinueLoop and (not Boolean(Result)) do
     begin
     if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = 
UpperCase(ProcessName)) or (UpperCase(FProcessEntry32.szExeFile) = 
UpperCase(ProcessName))) then
     Result := FProcessEntry32.th32ProcessID;
     ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
     end;
end;

function MataoPrograma(ExeFileName: string): Integer;
const
  PROCESS_TERMINATE = $0001;
var
  ContinueLoop: BOOL;
  FSnapshotHandle: THandle;
  FProcessEntry32: TProcessEntry32;
begin
  Result := 0;
  FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
  ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);

  while Integer(ContinueLoop) <> 0 do
  begin
    if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
      UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
      UpperCase(ExeFileName))) then
      Result := Integer(TerminateProcess(
                        OpenProcess(PROCESS_TERMINATE,
                                    BOOL(0),
                                    FProcessEntry32.th32ProcessID),
                                    0));
     ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
  end;
  CloseHandle(FSnapshotHandle);
end;



procedure TFVerProcessos.FormCreate(Sender: TObject);
var Tem: Integer;
begin
     ProcProcesso(ListBox1.Items);    // aqui carrega todos os processos 
numa listbox

     TEM:= Listbox1.items.IndexOF('FBGuard.exe');   // aqui verifica se esta 
carregado
     if Tem = -1 then
     winexec('C:\Arquivos de 
programas\Firebird\Firebird_2_5\bin\fbguard.exe -a',0);  // se nao estiver 
carregado carrega aqui;


     if Tem = -1 then begin           // verifica de novo se carregou ou nao
     ProcProcesso(ListBox1.Items);
     TEM:= Listbox1.items.IndexOF('FBGuard.exe');

     if TEM = -1 then begin                 // se nao carregou, exibe a 
mensagem
     ShowMessage2('O Servidor de Banco de Dados não pôde ser carregado. 
Contacte Suporte Tecnico do Sistema.');

     MataoPrograma('Comercial.exe');  // aqui fecha forçosamente o meu 
programa
     end;

     end;


end;

end.

Atenciosamente,
Rodrigo


----- Original Message ----- 
From: "Omar Haddad" <omarhaddadm em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, December 23, 2008 8:26 AM
Subject: Re: [firebase-br] Ref. Conexão mais rapida


Bom dia srs.(as)...

Debugando meu código, percebi que inseri no meu datamodule, uma função que
verifica se o servidor firebird está no ar.
Era esta função que causava a demora. Desabilitei-a e está uma "bala" de
prata ( rsrs ).

Agora, alguém sabe uma outra forma de saber se o server está no ar ? Sei que
tem a forma de testar se conseguiu conectar ou não, mas é vago, pq o
problema de não conexão pode ser de várias causas, portanto queria uma
função/código que, pelo menos, verificasse se o server do FB está no ar.

Obrigado a todos que responderam. abraço

aqui só tem fera.

É muito bom participar desta lista.

Fuii

2008/12/22 Kelver Merlotti <kmerlotti em gmail.com>

> outra verificação a ser feita é o seguinte:
> se vc estiver utilizando a extensão ".gdb" e a "restauração do windows"
> estiver habilitada, terá problemas, pois o windows tenta fazer backup do
> gdb
> antes da conexão.
> se este for o caso, desative a restauração do sistema ou troque a extensão
> do banco! :)
>
> Abraços!
>
> 2008/12/22 Adriano Ferreira <aerreira68 em gmail.com>
>
> > Omar,
> > Num aplicativo meu, eu estava com meu IBDatabase previamente conectado 
> > em
> > tempo de projeto.  Ao iniciar a aplicação, antes mesmo de passar pelas
> > rotinas que iriam abrir o banco, o aplicativo demorava bastante para
> > abrir. Desativei a propriedade de conexão do ibdatabase e o aplicativo
> > passou a abrir mais rápido.
> >
> > []s
> > Adriano
> >
> >
> >
> > 2008/12/22 Douglas Tosi <douglasht em gmail.com>
> >
> > > 2008/12/22 Omar Haddad <omarhaddadm em gmail.com>:
> > > > Gostaria de saber se tem como deixar a conexão com o banco Firebird
> > mais
> > > > rápida. Estou iniciando uma aplicação com banco LOCAL e ao clicar na
> > > > aplicação, demora uns4 a 6s. para abrir.
> > > > Algum recurso a desabilitar, etc. ?
> > >
> > > Omar, primeiro você precisa descobrir a origem da lentidão.
> > > É algum sql específico que você roda na inicialização que é lento? Ou
> > > tem muitos sqls rodando na inicialização e por isto está lento?
> > > A lentidão é mesmo relacionada ao Firebird, ou é apenas o processo de
> > > carga da aplicação que é lento?
> > >
> > > Depois de ter algumas destas respostas é possível saber onde e como
> > > mexer na base de dados.
> > >
> > > Tem ferramentas que te ajudam a descobrir isso. Dá uma olhada na seção
> > > de downloads do Firebase.
> > > Dica se você usa Firebird 2.1: clique na minha assinatura ;)
> > >
> > > hth,
> > > --
> > > Douglas Tosi
> > > www.sinatica.com
> > >
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
>
>
>
> --
> Kelver Merlotti
> Coordenador Editorial do Portal www.ActiveDelphi.com.br
> Contato: kelver em activedelphi.com.br
> Google: kmerlotti em gmail.com
> Msn: kmerlotti em hotmail.com
> Tem um segundo? Então, dá uma olhadinha nisso:
> Um site de publicidades, de Portugal, está pagando em euros (quase 3x
> mais que em reais) pra quem estiver disposto a:
> * Ler anúncios
> * Visitar sites
> * Clicar em banners
> * Navegar na NET
> * Ler e-mails
> * Convidar novos usuários
> O pagamento é feito em cheque! Registra lá!! Não custa nada! ;-)
> http://www.publipt.com/pages/index.php?refid=kmerlotti
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Att.
Omar Marques Haddad
Analista de Sistemas Sênior
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa

__________ NOD32 3710 (20081222) Information __________

This message was checked by NOD32 antivirus system.
http://www.eset.com






Mais detalhes sobre a lista de discussão lista