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 .

Usuários do banco carregados na ListView
Figura 1.Usuários do banco carregados na ListView
Usuários do banco carregados na ListView
Figura 2.Usuários do banco carregados na ListView

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.

Usuários do banco carregados na ListView
Figura 3.Usuários do banco carregados na ListView

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).

Usuários do banco carregados na ListView
Figura 4.Usuários do banco carregados na ListView

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!