Veremos neste artigo, como criar usuários no FB/IB através de uma aplicação Delphi. Utilizaremos o IBSecurityService, componente da paleta Interbase Admin, que encapsula os serviços de administração de usuários, com o qual podemos adicionar, excluir ou alterar os dados dos usuários do FB/IB.
Crie uma nova aplicação Delphi e adicione os seguintes componentes: um PageControl, um ListView, dois GroupBox, cinco Bitbtns, seis Labels e seis Edits. Configure os componentes no formulário tomando por base a Figura 1 e 2 .
Para o ListView, adicione duas colunas, através da propriedade Columns, altere para vsReport a propriedade ViewStyle e GridLines para True. Para os Edits que receberão a senha e confirmação digite na propriedade PasswordChar: “*”.
Adicione o IBSecurityService (InterBase Admin), dê um duplo clique no componente para abrir o editor e configure-o conforme a Figura 3.
Crie uma procedure com o nome de CarregarUser, e implemente-a com o seguinte código:
var
i: Integer;
aLista: TListItem;
begin
ListView1.Clear;
with IBSecurityService1 do
begin
Active := True;
DisplayUsers;
for i := 0 to UserInfoCount - 1 do
begin
with UserInfo[i] do
begin
aLista := ListView1.Items.Add;
aLista.Caption := UserName;
aLista.SubItems.Add(FirstName + ' ' +
MiddleName + ' ' + LastName);
end;
end;
Active := False;
end;
Após “chame” a procedure no evento OnShow do formulário. Rode a aplicação e veja os usuários do banco mostrados na ListView (Figura 4).
Vamos codificar a aplicação, para manipular os usuários. No botão Adicionar, digite o seguinte código:
Tipo := 0;
PageControl1.ActivePage := TabSheet2;
Tipo é uma variável (do tipo byte) declarada no formulário, que irá identificar os tipos de ações realizadas (adicionar= 0, alterar=1 e excluir=2), por isso adicione o mesmo código para os botões Alterar e Excluir, não esquecendo de alterar o valor da variável Tipo.
Para o botão Alterar devemos ainda incluir o seguinte código, para preencher os Edits com os valores dos dados do usuário selecionado no ListView:
with IBSecurityService1 do
begin
Active := True;
DisplayUser(ListView1.Selected.Caption);
Edit1.Text := UserInfo[0].UserName;
Edit2.Text := '';
Edit3.Text := '';
Edit4.Text := UserInfo[0].FirstName;
Edit5.Text := UserInfo[0].MiddleName;
Edit6.Text := UserInfo[0].LastName;
end;
O código anterior, o método DisplayUser, recebe como parâmetro o nome do usuário, e disponibiliza os seus dados, que são preenchidos nos respectivos Edits. Note que estamos limpando os Edits da senha e confirmação, pois queremos alterar os dados do usuário. Para o botão OK iremos utilizar o seguinte código:
with IBSecurityService1 do
begin
UserName := Edit1.Text;
Password := Edit2.Text;
FirstName := Edit4.Text;
MiddleName := Edit5.Text;
LastName := Edit6.Text;
Active := True;
case Tipo of
0: AddUser;
1: ModifyUser;
2: DeleteUser;
end;
ShowMessage('Informação salva com sucesso');
CarregarUser;
end;
No código anterior, passamos os valores dos Edits, para as respectivas propriedades do IBSecurityServices, após verificamos qual o tipo de ação e chamamos o método adequado.
Podemos tratar exceções, para o caso da tentativa de inserção de usuário com o mesmo nome através do seguinte código:
{ Declare em uses IB }
except
on E: EIBInterbaseError do
raise Exception.Create(
'Já existe um usuário com esse nome');
end;
Você pode adaptar o exemplo, verificando se a senha e a confirmação têm os mesmos valores, verificar se foi escolhido um usuário no ListView para alterar ou excluir, entre outras modificações.
Vimos neste artigo, como é simples manipular usuários do FB/IB através do IBSecurityServices, ficando sua aplicação totalmente independente das ferramentas de administração do banco de dados.
Forte abraço a todos!