Utilizando bancos de dados Oracle a partir do E3.

1) Introdução

Em um sistema supervisório, trabalhamos com diversas variáveis e informações que em algum determinado momento precisam ser armazenadas para referências futuras ou para fins de pesquisas e comparações, além de emitir relatórios de acompanhamento de produção, utilização e andamento de máquinas, dispositivos e outros equipamentos.

O E3 permite criar um arquivo dessas informações, gerenciando o armazenamento de históricos, fórmulas e alarmes em bancos de dados. Para facilitar o acesso a esses dados por outras aplicações e sistemas, o E3 possui suporte a diversos bancos de dados do mercado, como o Access (formato MDB), SQL Server e também Oracle.

Veremos a seguir como configurar no E3 o acesso ao banco de dados Oracle, para o armazenamento dessas informações.

2) Pré-requisitos

A utilização do Oracle como servidor de banco de dados para o E3 só é possível mediante a instalação de um servidor ou cliente Oracle na máquina onde será executado o servidor E3. Nesta instalação, devem estar obrigatoriamente presentes o suporte a OCI (Oracle Call Interface) e o OLEDB Provider para Oracle, necessários para a comunicação do E3 com o Oracle. Para instalar o Oracle, consulte a documentação própria do produto.

3) Acessando o BD Oracle dentro do E3

Para fazer a comunicação com um banco de dados no E3, utilizamos o objeto Banco de Dados. Para inserir este objeto no E3, clique com o botão direito do mouse sobre o nome do projeto e escolha a opção Inserir–Banco de Dados.

 

Figura 1: Inserindo Um Banco de Dados no E3

 

Ao inserir o banco de dados no sistema, são habilitadas as opções referentes ao tipo de servidor de dados. O Servidor DB é o responsável pelo gerenciamento e armazenamento das informações dos objetos que utilizam esse serviço. Os tipos existentes são: Servidor de Dados Oracle, Access e SQL Server. Estes parâmetros são definidos através da propriedade SourceType. Para o servidor Oracle, escolha a opção stOracle.

No Servidor de Banco de Dados E3 será colocado o nome da conexão de acesso ao Oracle (definido no próprio Oracle). Se o servidor Oracle estiver sendo executado localmente, a conexão pode ficar em branco, pois o E3 buscará automaticamente os dados. Caso contrário é necessário indicar o nome da conexão. Nos campos Usuário e Senha são solicitados o usuário e senha conforme configuração do Oracle.

 


Figura 2 – Configuração do Servidor Oracle

 

Caso necessite, configure as propriedades do Banco de Dados:

 PROPRIEDADE

DESCRIÇÃO

 ConnectTimeOut  Retorna o tempo máximo que uma chamada ao banco pode durar. Se o tempo expirar, a operação é cancelada.
 EnableSynchronization  Grava os dados em duas bases simultaneamente, de modo a permitir uma maior segurança dos dados.

ReconnectDelay
 Determina o tempo de espera entre as tentativas de reconexão com o Banco de Dados.
 SourceType  Seta ou retorna o tipo do servidor de banco de dados.

4) Acesso ao Banco de Dados via scripts

Os scripts são módulos de linguagem de programação nos quais podem ser criadas linhas de códigos que permitem maior flexibilidade para associar ações a eventos específicos. Cada item de um projeto E3 possui uma lista de eventos previamente associados. Assim, o usuário poderá criar programas que serão executados na ocorrência de um evento.

O E3 utiliza o VB Script (Visual Basic Script) em seus scripts e com eles consegue instanciar qualquer objeto ActiveX registrado no sistema. Para o acesso a Bancos de Dados, o ActiveX mais utilizado é o ADO que pode ser facilmente manipulado nos scripts E3.

Primeiramente é necessária a criação de uma conexão ADO que pode ser feita com o script abaixo:

Set DBConnection = CreateObject(“ADODB.Connection”)
DBConnection.Open “Provider=MSDAORA; DataSource=conexaoOracle; User ID=scott; Password=tiger;”

Depois da criação da conexão é possível executar um comando SQL diretamente sobre a conexão, como mostrado abaixo:

DBConnection.Execute “UPDATE Tabela SET nome = ‘João’ WHERE id = 10”

É possível também a visualização de todos os registros desejados, retornados na forma de um recordset (consulta), como mostrado abaixo:

Set Recordset = CreateObject(“ADODB.Recordset”)
Recordset.Source = “Tabela”
Recordset.ActiveConnection = DBConnection
Recordset.CursorType = 1 ‘adOpenKeyset
Recordset.LockType = 3 ‘adLockOptimistic
Recordset.Open

A partir deste momento, é possível navegar pela tabela utilizando os comandos MoveNext e MovePrev, bem como uma série de outros comandos disponibilizados pelo ADO. É possível também utilizar uma consulta SQL para manipular partes específicas da tabela, através da propriedade Source.

5) Tecnologias utilizadas pelo E3 para o acesso ao banco de dados Oracle

O E3 basicamente utiliza duas tecnologias para acessar o banco de dados Oracle: ADO (ActiveX Data Object) e OCI (Oracle Call Interface).

ADO é a tecnologia utilizada pelo E3Browser e E3Chart para recuperação dos dados armazenados no banco de dados. O ADO também é amplamente utilizado nos scripts do E3 para todo tipo de operação junto ao banco de dados. Ele é um conjunto de objetos COM criado para acessar informações de SGBD usando OLE DB. Essa tecnologia fica disponível quando instalamos o OLE DB Provider para Oracle (MSDAORA). Ela faz o acesso à interface nativa do Oracle, a OCI.

A OCI é utilizada pelo Servidor BD do E3 para implementar os serviços de banco de dados utilizados pelos Históricos, Fórmulas e Alarmes. Através da OCI, acessamos diretamente as funções do Oracle, tornando o processo o mais otimizado possível. Ela fornece uma biblioteca padrão de acesso ao banco de dados e funções de reuperação de dados na forma de uma DLL ou LIB que pode ser ligada a uma aplicação em tempo de execução.

6) Como é feito o acesso ao Oracle pelo Servidor DB

O Servidor de Banco de Dados do E3 utiliza a OCI (Oracle Call Interface) para se comunicar com o servidor Oracle, ou seja, utiliza a forma nativa do banco de dados para ganhar em performance na comunicação com o DB.

Um bom exemplo de como funciona a comunicação do ServidorDB do E3 com o Oracle é o Histórico. Inicialmente, é feita a aquisição dos dados pelo histórico, que de posse destes dados, imediatamente os envia em forma de requisições para o DB. Estas requisições podem ser para criação de uma tabela, criação de índices e chaves, adição de dados etc. O Servidor DB do E3 possui um processo separado especialmente para recebê las. Dependendo do tipo de operação a ser realizada, os dados são formatados e armazenados em arquivo ou memória temporários.

Ao mesmo tempo, o DB possui mais um outro processo, responsável pela recuperação das requisições e posterior envio para o banco de dados Oracle em forma de comandos SQL, utilizando a OCI.

 


Figura 3 – E3 acessando o BD Oracle
Este artigo foi útil? Was this post helpful?
Yes0
No0

Leave a Reply

Your email address will not be published.Required fields are marked *