domingo, 22 de janeiro de 2012

Oracle - Instalando e utilizando a versão gratuita do Oracle Oracle Database 10g Express Edition(XE)

Neste artigo irei abordar a instalação da versão gratuita do Oracle e a criação de um pequeno projeto de exemplo desenvolvido em Delphi 7 utilizando componentes da palheta  DBExpress. Primeiramente acesse o site www.oracle.com, é necessário fazer um cadastro para poder realizar o download, clique na parte superior direita em “Sign In / Register for a free Oracle Web account” e logo em seguida em “Crie sua conta já”. Coloque seu e-mail e senha e preencha com seus dados cadastrais. Após realizar o cadastro vá em View all Downloads que estará do lado direito da página e depois procure por “Oracle Database 10g Express Edition”, após isto clique em ”Oracle Database 10g Express Edition for Microsoft Windows” em seguida em “Accept License Agreement” e por final escolha o arquivo com o nome de OracleXEUniv.exe. Não se assuste, pois o arquivo é de aproximadamente 216 MB. Antes de começar a instalação iremos destacar algumas características importantes desta base de dados.
O Oracle 10g é uma versão um pouco limitada, sendo que possibilita 4 GB para armazenamento de dados e trabalha no limite de 1GB de memória RAM, mas que certamente oferece recursos à grande parte das empresas de médio e pequeno porte. Ao transcorrer da sua utilização, vocês perceberão que não é possível criar nenhuma base de dados, sendo assim, onde as informações serão armazenadas no Oracle 10g? Não se preocupem, pois tudo é armazenado em um local, ou seja, este banco de dados possui apenas uma instância denominada XE. Ela pode ser encontrada no diretório C:\Oraclexe\oradata\XE.
Depois de ter  baixado, iremos executar a instalação. A instalação do Oracle é bem simples, clique no executável OracleXEUniv e em seguida em próximo, leia com atenção os termos de contrato de licença, clique no botão Aceitar e após isto avance. Por padrão o Oracle será instalado no diretório C:\oraclexe, mas você também poderá escolher qualquer diretório de preferência, através do botão procurar. Observe a figura 01.

Figura 01. Escolha o diretório.
A próxima etapa é a mais importante, pois será onde informamos a senha do administrador do Oracle. O DBA Oracle é chamado de SYS e SYSTEM, este usuário é o que controla tudo no banco de dados. Observe a figura 02.

Figura 02. Informar a senha do Administrador.
Nas próximas etapas da instalação, o Oracle configura tudo automaticamente. Depois de finalizar a instalação entre no Painel de controle/Ferramentas Administrativas/ Serviços e verifique os serviços iniciados de acordo com a figura 03.

Figura 03. Serviços do Oracle.
Clique em Iniciar/Programas e perceba que o Oracle possui várias ferramentas e recursos para a Administração como realização de backup, restauração de banco de dados, uma documentação completa (em inglês) e o mais interessante uma ferramenta para gerenciamento do banco de dados via Browser.  

Neste momento iremos explorar um pouco esta ferramenta para gerenciamento do Banco de Dados, criando uma tabela e uma Seqüência que será explicado logo abaixo:
Vá em Iniciar/Programas/Oracle Database 10g Express Edition/Ir para a Home Page do banco de Dados, preencha como usuário SYSTEM e a senha que você definiu durante a instalação.(Figura 04)

Figura 04. Login no Banco de Dados.
Para criar uma tabela siga os seguintes passos: clique em Browser de Objetos/Criar/ Tabela. (figuras 05 e 06). No campo nome da tabela informe TBTHECLUB.

Iremos criar três campos, veja a tabela abaixo:

Nome da Coluna
Tipo
Precisão
Escala
Não Nulo
COD_CLUB
NUMBER
VAZIO
VAZIO
SIM
NOME
VARCHAR2

35
NÃO
CIDADE
VARCHAR2

30
NÃO

Clique em Próximo e defina: (figura 07)
  • Chave primária: Preenchido por uma nova seqüência,
  • Nome de restrição da chave primária: TBTHECLUB_PK,
  • Nome da Seqüência: TBTHECLUB_SEQ,
  • Chave Primária: COD_CLUB (NUMBER).
  
Figura 05. Browser de Objetos.
Figura 06. Criando os campos.

Figura 07. Definindo uma Seqüência.
Uma seqüência é chamada através de uma TRIGGER, uma espécie de auto-incremento para o campo código. Abaixo iremos ver a construção e entender um pouco desta seqüência TBTHECLUB_SEQ:

CREATE SEQUENCE "TBTHECLUB_SEQ"
MINVALUE 1 
MAXVALUE 9999999999999999999999999
INCREMENT BY 1
START WITH 1
CACHE 20 NOORDER 
NOCYCLE
 

Opção
Descrição
CREATE SEQUENCE "TBTHECLUB_SEQ"
Criação da seqüência com o Nome de 
TBTHECLUB_SEQ.
 
MINVALUE 1
valor mínimo da seqüência.(limite mínimo)
MAXVALUE 99999999999999999999999
valor máximo suportado pela seqüência.(limite máximo)
INCREMENT BY 1
número do incremento, no nosso caso será de 1 em 1.
START WITH 1
Especificado o primeiro número da seqüência, que está 
como 1.
 
CACHE 20 NOORDER
Irá especificar para o banco uma quantidade de números 
que será guardado na memória para o mais rápido acesso.
(o padrão é de 20).
NOCYCLE
Determina que após ter atingido qualquer um dos limites
 a seqüência não gera mais valores.
Por se tratar de uma única tabela e pela sua simplicidade não iremos definir nenhuma Chave estrangeira e nem adicionar Restrições. Clique em próximo e finalizar. Vide Figura 08 e 09.   

Figura 08. Chave Estrangeira.
Figura 09. Restrições.
E por fim clique no botão Criar para finalizar a criação de nossa tabela. (Figura 10)

Figura 10. Confirma a solicitação.
Depois da tabela ser criada, verifique os campos através da Figura 11.

Figura 11. Campos.
A instrução SQL gerada pelo Banco:

CREATE TABLE  "TBTHECLUB" 
   (    "COD_CLUB" NUMBER NOT NULL ENABLE, 
        "NOME" VARCHAR2(35), 
        "CIDADE" VARCHAR2(30), 
         CONSTRAINT "TBTHECLUB_PK" PRIMARY KEY ("COD_CLUB") ENABLE
   )
 
CREATE OR REPLACE TRIGGER  "BI_TBTHECLUB" 
  before insert on "TBTHECLUB"               
  for each row  
begin   
    select "TBTHECLUB_SEQ".nextval into :NEW.COD_CLUB from dual; 
end; 
 
ALTER TRIGGER "BI_TBTHECLUB" ENABLE
 
Observe que o Oracle cria automaticamente uma TRIGGER para incrementar o nosso campo COD_CLUB antes da inserção através da Seqüência e a habilita através do comando Enable. 
 
Montando um projeto de Exemplo
 
Antes de começarmos a montar nosso projeto de exemplo copie a DLL dbexpora.dll (encontrada na pasta do seu Delphi 7 - C:\Arquivos de programas\Borland\Delphi7\Bin) para a pasta C:\Windows|System32.
Abra o Delphi 7 em File/New/Application e adicone os seguintes componentes no Formulário: SQLConnection, SQLDataSet, (ambos da DBExpress), DataSetProvider, ClientDataSet e DataSource(ambos da DataAccess). Agora iremos adicionar: DBGrid, DBNavigator e um Button. Primeiro iremos configurar o componente de conexão SQLConnection. Dê um duplo clique e crie uma nova conexão com o Driver name Oracle e o Connection Name como BDTESTE e altere suas propriedades Database: XE, Password: seupassword e User_Name: SYSTEM. Entre nas propriedades e defina o LoginPrompt como False. Ficará parecido com a Figura 12 abaixo:
 
Figura 12. Conexão DbExpress.
Abaixo a configuração de todos os componentes não visuais (Figura 13)
·         SQLDataSet: CommandText - SELECT * FROM TBTHECLUB 
                                  SQLConnection – SQLConnection1

  • DataSetProvider: DataSet - SQLDataSet1
                                         UpdateMode – upWhereKeyOnly

  • ClientDataSet: Active – True
                                    ProviderName - DataSetProvider1

  • DataSource: DataSet - ClientDataSet1

Dê um duplo clique no componente SQLDataSet e adicione os campos a lista de fields, pois será necessário que alterar a propriedade ProviderFlags dos campos da seguinte forma:

Campos:
COD_CLUB – pfInWhere e pflnkey como true
NOME – Apenas o pfInUpdate como true
CIDADE - Apenas o pfInUpdate como true  

 Entre no Field COD_CLUB e na propriedade Required coloque como False, pois este campo será preenchido automaticamente através da SEQUÊNCIA criada anteriormente.

Figura 13. Configuração dos componentes.
Agora configure o restante dos componentes visuais da seguinte maneira:

·         DBGrid: DataSource - DataSource1

·         DBNavigator: DataSource - DataSource1

·         Button: Caption – Aplicar ao Banco

O formulário irá ficar assim: (figura 14)

Figura 14. Layout do Formulário.
E por final, iremos codificar nosso exemplo:

No caso do acesso via DBExpress, o Oracle não faz a conversão dos caracteres, sendo necessário setar estes parâmetros logo após a conexão.

Entre no evento AfterConnect do SQLConnection e coloque o seguinte código:

procedure TForm1.SQLConnection1AfterConnect(Sender: TObject);
begin
  SQLConnection1.ExecuteDirect('ALTER SESSION SET
                                NLS_NUMERIC_CHARACTERS = ".,"',);
End;

No Button coloque este código:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Clientdataset1.ApplyUpdates(-1);
  ClientDataSet1.Refresh;
  Application.MessageBox('As Informacões Foram Enviadas'+chr(10)+'para    o Banco de Dados.','AVISO!',MB_OK + MB_ICONINFORMATION);
end;
  
Conclusão

Neste artigo foi apresentado a versão gratuita do Oracle junto com o desenvolvimento de um projeto simples em Delphi 7 utilizando a conexão DBExpress. Vimos que o Oracle XE oferece vários recursos e funcionalidades e pode ser facilmente utilizados em conjunto com o Delphi. Espero que este artigo sirva de base para o desenvolvimento de outros projetos e que o Banco Oracle apresente resultados importantes e ofereça recursos necessários para utilizá-lo em suas aplicações. Nós do The Club estamos abertos a sugestões, nos mandem e-mails. Até a próxima e sucesso a todos. 

Nenhum comentário:

Postar um comentário