Mudando o status da base de dados no Delphi
Veja neste artigo como derrubar uma base de dados para proibir o acesso de aplicações clientes.
Estatísticas:
Serviços:

Mudando o status da base de dados no Delphi
Em algumas situações, como por exemplo, a execução do backup/restore, você vai se deparar com a necessidade de proibir o acesso das aplicações clientes a sua base de dados. Esse artigo apresenta a solução desse problema usando um componente nativo no Delphi 7 chamado TIBConfigService que pode ser encontrado na paleta InterBase Admin.
Após adicionar o componente TIBConfigService na sua aplicação, falta somente a implementação do código para mudar o status da base de dados.
Abaixo está um exemplo de como alterar o status da base de dados para off-line, ou seja, derruba-la.
|
with IBConfigService1 do begin DatabaseName:=caminno para a base de dados; ServerName:=nome do servidor; LoginPrompt:=False; Params.Clear; {antes de derrubar a base de dados você deve se conectar a base de dados. o usuário que se conecatar a base de dados para derruba-la será o único que poderá tonar a base de dados online de novo.} Params.Add(user_name=SYSDBA);//nome do usuário que vai derrubar a base Params.Add(password=masterkey);//senha do usuário try Active:=True;//ativa o serviço, ou seja, se conecta na base {a linha abaixo ira mudar o status da base de dados para off-line e fará com que todas as conexões ativas com esta base seja perdida} ShutdownDatabase(Forced, 0); except ShowMessage(Não foi possível mudar o status da base de dados para off-line); end; Active:=False;//desativa o serviço, ou seja, desconecta da base end; |
Listagem 1 – Derrubando uma base de dados
O procedimento ShutdownDataBase possui dos parâmetros: Options e Wait. O parâmetro Options especifica como a base de dados será derrubada e o parâmetro Wait informa quantos segundos será aguardado antes da base ser derrubada. Veja na tabela abaixo os valores permitidos para o parâmetro Options e o que ele significa.
|
Valor |
Descrição |
|
Forced |
Derruba a base de dados após o tempo definido no parâmetro wait. Você pode derrubar a base de dados imediatamente se definir wait como 0. |
|
DenyTransaction |
Não serão permitidas novas transações durante o tempo definido no parâmetro wait e se após o tempo definido ainda houver pelo menos uma transação ativa a base não será derrubada. |
|
DenyAttachment |
Não serão permitidas novas conexões durante o tempo definido no parâmetro wait e se após o tempo definido ainda houver pelo menos uma conexão ativa a base não será derrubada. |
Como visto na listagem 1, Antes de você derrubar uma base de dados você deve conectar na base com algum usuário e este usuário será o único que poderá mudar seu status para on-line novamente. Também é importante saber que durante o período que a base de dados estiver off-line, o usuário que à derrubou poderá se conectar e usar a base normalmente.
Agora vamos ver o código para marcar a base de dados como on-line.
|
with IBConfigService1 do begin DatabaseName:=caminho para a base de dados; ServerName:=nome do servidor; LoginPrompt:=False; Params.Clear; {para definir o status da base de dados como on-line novamente você deve usar o mesmo usuário que a derrubou.} Params.Add(user_name=SYSDBA);//nome do usuário Params.Add(password=masterkey);//senha do usuário try Active:=True;//ativa o serviço, ou seja, conecta na base {a linha abaixo ira mudar o status da base de dados para on-line} BringDatabaseOnline; except ShowMessage(Não foi possível mudar o status da base de dados para on-line); end; Active:=False;//desativa o serviço, ou seja, desconecta da base end; |
Listagem 2 – Mudando o status da base para on-line
Essas duas funções são muito úteis, principalmente, quando se tem aplicações que trabalhão em rede, mas você não pode se esquecer que o usuário que a derrubou continuará tendo acesso a base de dados normalmente e que ele será o único que pode torna-la on-line novamente. Tomando esses cuidados você não terá problemas.




Sistema completo para Backup/Restore com Firebird - Parte II

Utilize a interface TDI sem modificar sua aplicação

Sistema completo para Backup/Restore com Firebird - Parte I

Mudando o status da base de dados no Delphi

Utilizando o gBak do Firebird para efetuar backup/restore

Controle as exceções do seu sistema



Curso Online - Delphi Fundamental (Win32)

Curso Online-Aplicação Financeira com Delphi 2009 e MySQL

Curso on-line Rave Reports

Curso Online - Criando uma Aplicação multi-camadas Completa com Delphi

Rad Studio 2007-DBX4 e Firebird 2.0-Aplicação comercial de vendas do Inicio ao Fim

Introdução ao ASP

Curso Completo MySQL

jQuery – A Biblioteca JavaScript para Webdesigners




[vídeo] Consumindo os dados via ajax – Consumindo dados com getJson do jQuery utilizando POCO EF 4.0 – Parte 3

[vídeo] Classe POCO – Consumindo dados com getJson do jQuery utilizando POCO EF 4.0 – Parte 1

Imprimindo Relatório : VCL Crystal Reports XI - Delphi

VCL Crystal Reports XI - Delphi

[vídeo] Gerenciamento das Comunicações - Curso Gerência de Projetos – Parte 8

[vídeo] Plano de Comunicação - Curso Gerência de Projetos – Parte 9

[vídeo] Seleção e Priorização de Projetos - Curso Gerência de Projetos – Parte 6

[vídeo] Escopo, metas, premissas, restrições - Curso Gerência de Projetos – Parte 7

[vídeo] Documento Conceitual do Projeto - Curso Gerência de Projetos – Parte 5


Você está em:




Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!


