Whats new? | Login
Cadastre-se | Atendimento | RSS
 
Live chat by Netwatts
Home Entenda o site Revistas Canais Cursos Palestras Suporte Fórum +Serviços Assine Compre Créditos
Você está em: / canal Delphi [artigos]
   + Delphi:   artigos   |   vídeos   |    cursos   |    mais
 
 
Outras seções:
Home 
Entenda o site 
Revistas 
Canais 
Cursos 
Palestras 
Suporte 
Fórum 
Oportunidades 
 Todos os links 

 
  Ir para o Canal Delphi  
+Canais:
Canal Delphi 
Canal Java 
Canal .net 
Canal Banco de dados 
Canal Mobile 
Canal Ruby on Rails 
Canal PHP 
Canal ASP 
Canal WebDesign 
Canal Engenharia de Software 
Canal Linux 
Canal Scripting 
Canal Outros 
  Todo conteúdo DevMedia 

 
  ver cursos de Delphi  
+Cursos:
Cursos de Java 
Cursos de .net 
Cursos de Banco de dados 
Cursos de Delphi 
Cursos de Engenharia de Software 
Cursos de Ruby on Rails 
Cursos de ASP 
Cursos de WebDesign 
Cursos de PHP 
Cursos de PalmOS 
Cursos de Linux 
Cursos de Scripting 
  Formações completas 
  Todos os cursos 

 
Canal de conteúdo Delphi
Revista ClubeDelphi
Suporte Delphi
Formacoes completas Delphi
Palestras de Delphi
E-books de Delphi
Downloads de Delphi
 

+Revistas:
ClubeDelphi 
.net Magazine 
Java Magazine 
webMobile Magazine 
SQL Magazine 
Engenharia de Software Magazine 
  Edições anteriores impressas 
  Todas as revistas 


[Fechar]
Este post está disponível para quem é assinante da ClubeDelphi ou para quem possui Créditos DevMedia.


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

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ 0,00 (assinante) ou R$ 0,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ 0,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia


Mudando o status da base de dados no Delphi

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.





STAVARENGO, RAFAEL
Cinco anos de experiência com Delphi. Na 3º série do ensino superior. Portifólio: http://www.rafaelstavarengo.110mb.com/
Ver space do autor


Estatísticas deste post:
Visualizações:  3890
Favoritado:  8 vez(es)
 
Nenhum voto recebido

  Central de Serviços:
Inclua seu próprio artigo! (ajuda)
Participe! Inclua um comentário
Adicionar este post a Favoritos
Marcar este post como lido/assistido
Inclua uma anotação pessoal (ajuda)
RSS Feeds
Versão para impressão



Participe! Inclua um comentário
[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


[Fechar]

Você precisa estar logado para dar seu feedback.

Clique aqui para efetuar o login

Caso não tenha um cadastro DevMedia, clique aqui para se cadastrar (gratuito)
 
DevMedia Group - Tel: (21) 3382-5038 - www.devmedia.com.br
2009 - Todos os Direitos Reservados a DevMedia Group