Fórum Número de conexões - Firebird #274024
24/03/2005
0
Obs: Tenho uma base numa máquina e várias estações acessando essa base simultaneamente.
Grato.
Fabricio Lb
Curtir tópico
+ 0Posts
28/03/2005
Fabricio Lb
Valeu
Gostei + 0
29/03/2005
Fabricio Lb
Acho que minha dúvida não ficou muito clara. Vou tentar esclarecê-la. É o seguinte: eu trabalho com arquitetura Client\Server onde várias estações de trabalho acessam, via BDE, uma micro onde se encontra o servidor de banco de dados (Firebird) e a base de dados. O que acontece é que nesse sistema temos um mecanismo de backup que pode ser acionado de qualquer uma das máquinas estações. O problema é que se houver alguma conexão aberta com a base de dados durante o backup ocorre erro, tanto no backup que gera um arquivo ZIP quanto no backup com compactação de dados do Firebird!
O que eu precisava era saber o número de conexões abertas com a base antes de realizar o backup. Fiz uma implementação que inicialmente funcionou bem, porém após alguns testes percebi que ela só funciona quando o aplicativo executa na mesma máquina onde se encontram instalados o Firebird e a base de dados. Nas demais estações as conexões não são contabilizadas!!! Segue o código:
-------------------------------------------------------------------------------
Código:
bDoBackup := True; try with TIBServerProperties.Create(Application) do begin ServerName := sAlias; LoginPrompt := False; Params.Add(´user_name=´+sUser); Params.Add(´password=´+sPassword); Active := True; try Options := [Database]; FetchDatabaseInfo; if(DatabaseInfo.NoOfAttachments > 0) then bDoBackup := False; finally Active := False; end; end; except bDoBackup := False; end;
-------------------------------------------------------------------------------
A variável sAlias q guarda o ServerName é disposta na seguinte forma:
Ex:´200.221.9.53:C:\base.fdb´, onde o IP é referente a máquina onde se encontra a base de dados.
Se alguém tiver alguma luz....
Grato desde já.
[]´s Fabrício
Gostei + 0
29/03/2005
Fred
Gostei + 0
29/03/2005
Christian_adriano
eu fiz o seguinte, Criei uma Tabela Auxiliar com dois campos, Qtde e DataHora.
Com o Campo ´Qtde´ - eu controlo as entradas e Saídas do Sistema, Entrada, pego a valor do Campo ´Qtde´ e Somo ( Inc(Qtde) ), e na saida da Applicação e Subtraio o valor ( Qtde := Qtde - 1 ).
No Campo DataHora - Controlo Guardo o Dia e Hora das Entradas e Saidas da Aplicação.
Espero que sirva pra vc ter uma ideia.
[]´s.
Christian.
Gostei + 0
29/03/2005
Fabricio Lb
Resolvi o problema usando [b:990bef16ab]TIBDatabaseInfo[/b:990bef16ab] mesmo.
Falow...
Gostei + 0
29/03/2005
Christian_adriano
Poste aqui a sua solução, pode ocorrer de mais alguém esteja precisando.
[]´s.
Christian.
Gostei + 0
15/07/2008
Powerlog Tecnologia
http://forum.devmedia.com.br/viewtopic.php?t=59332
Atualmente eu uso componentes DBExpress. Quando os componentes eram do IB, eu usava o DatabaseInfo, conforme sugerido.
Como eu faço agora, já que tenho um TSQLConnection ao invés de um IBDatabase ?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)