Zim 8.x - JDBC SAM

Propaganda
Zim 8.x - JDBC SAM
Zim JDBCSAM para as versões 7 e 8:
 JDBCSAM -Serve para acessar bases de dados SQL a partir de uma aplicação ZIM.
 Este produto está substituindo os outros produtos SAM’s;
 É compatível com os servidores SQL: Oracle, SQLServer, PostgreSQL e MySQL; 
Utiliza JDBC Driver (incluido no produto) para acesso ao banco de dados SQL, não
sendo necessário utilização de software “cliente” para acesso;
 Funciona diferente dos outros produtos Zim SAM’s, ou seja é necessário: o
Revisar programas para utilizar (quando o cliente já utiliza SAM); o
Reescrever programas para utilizar (quando o cliente não utiliza SAM); o
Modificar tabelas no lado do servidor SQL (no caso de Oracle) – veja item 1
(abaixo);
 É necessário instalar uma biblioteca de funções SQL (zimorafunc.sql) para simular
as funções Zim do lado do servidor SQL (Oracle, SQLServer e etc);
 O programa pconnect.zim (anexo) contêm um exemplo de como conectar usando
JDBCSAM;
Habilitar o produto Zim JDBCSAM for Oracle.
Abaixo segue uma pequena explicação sobre o produto Zim JDBCSAM for Oracle.
O produto Zim JDBCSAM for Oracle é o novo produto da Zim que está substituindo os
produtos SAM’s da versões anteriores ao Zim 7.11.
O produto Zim JDBCSAM for Oracle é utilizado para conexão do Zim com o banco de
dados Oracle: inserindo, alterando ou consultando os dados armazenados num servidor
SQL.
Com o objetivo de melhorar a performance, todos os comandos Zim tem seu respectivo
comando SQL gerado e enviado ao servidor Oracle para execução, por isso a
necessidade de ter as funções Zim sendo “replicadas” do lado do servidor Oracle, esta
script está disponivel em anexo. A mesma deverá ser recriada debaixo do mesmo
usuário que estará acessando as tabelas Oracle.
Existem outros pontos que devem ser considerados:
- Utilização de variáveis DATE em comandos FIND, CHANGE, DELETE e COMPUTE;
- Comparação entre diferentes tipos de dados numa cláusula WHERE;
Se você for utilizar o produto JDBCSAM, você deve configurar a variável de ambiente
SQLCPI, veja abaixo:
# export SQLCPI=$ZIM/ORASQLCPI --> Oracle
Para poder utilizar o Zim 7.12 JDBCSAM você deverá instalar/configurar o JAVA em seu
ambiente.
O JAVA a ser instalado deve ser o do site http://www.java.com.
Não recomendamos a utilização do JAVA que vem pré-instalado em algumas
distribuições Linux.
O diretorio onde o Java estáa instalado devera estar configurado na variavel PATH do
Linux, HP-UX ou AIX.
Zim 8.x - JDBC SAM
Faça essa configuração no arquivo /etc/profile, para que a variável PATH seja
atualizada para todos os usuários do sistema.
[[email protected] ~]# export PATH=$PATH:/usr/bin/java/bin
OBS: para saber se o Java esta devidamente configurado para ser utilizado pelo Zim,
execute os comandos abaixo:
[[email protected] ~]# which java
--> sera exibida uma mensagem com o diretorio onde o Java está instalado
[[email protected] ~]# java -version
--> sera exibida uma mensagem com a versao corrente do Java a ser utilizado
Para executar os testes de dentro do Zim, voce devera executar o comando abaixo
para se conectar a uma base de dados Oracle:
> connect to "JDBCSAM" using ("remotedatabasename", "oracle",
"orauser_name","orauser_pwd","1521","HOSTIP_OR_HOSTNAME")
NOTA: a porta está com valor padrão do Oracle, que pode ser alterado conforme o
ambiente de cada cliente.
Instalação do produto Zim JDBCSAM for Oracle
Na aquisição do produto JDBCSAM, acompanham em anexo os arquivos que deverão
ser utilizados para a instalação/configuração do Zim 7.12 JDBCSAM com Oracle em seu
ambiente:
•
zimorafunc.sql – para a criação da biblioteca de funções Zim/SQL no banco de
dados Oracle (usar o mesmo usuário que irá acessar o banco de dados Oracle);
•
jdbcsam.sql - deverá ser copiado no diretório onde o Zim 7.12 está instalado;
•
pconnect.prg – programa exemplo para conexão a um banco de dados Oracle.
Para poder utilizar o Zim 7.12 JDBCSAM você deverá instalar/configurar o JAVA no seu
ambiente.
•
O JAVA a ser instalado deve ser o do site www.java.com.
•
O diretório onde o Java está instalado deverá estar configurado na variável PATH
do Windows.
NOTA: não é obrigatória a instalação do cliente Oracle na estação onde estará sendo
feito o acesso ao Oracle via JDBCSAM, pois todo acesso será feito via JDBC driver da
Oracle, que está incluído no produto.
Particularidades do produto Zim JDBCSAM for Oracle
Gostaríamos de salientar que o produto Zim JDBCSAM for Oracle que você irá testar,
tem certas particularidades que o difere do produto Zim OracleSAM disponibilizado
anteriormente.
Criamos uma lista especificando os itens que merecem especial atenção no momento
da utilização do produto Zim JDBCSAM for Oracle:
Zim 8.x - JDBC SAM
1)
Padrão de campos deve seguir o modelo abaixo:
2)
Todos os comandos Zim são traduzidos para comandos SQL, com isso é
necessário ter instalado no lado do Oracle o package ZIMFUNC (em anexo), que é
responsável em reproduzir as funções Zim do lado do banco de dados Oracle (está em
anexo e deve ser incluido para no mesmo usuário que fará o acesso a base de dados).
3)
Utilização de campos com tipo de dado incompatível (NUMERIC x DATE x
CHAR) em clausula WHERE ou em concatenação dentro de um comando Zim
a.
Quando for necessário comparar tipos de dado diferentes, deve-se utilizar uma
função ZIM para compatibilizar:
FIND TABELA WHERE CAMPO_CHAR_8 = DATA_VENCTO --> ERRO
FIND TABELA WHERE CAMPO_CHAR_8 = $MASK(DATA_VENCTO,”YYYYMMDD”) -->
CERTO
b.
Quando for necessário utilizar concatenação, deve-se utilizar uma função Zim
para compatibilizar:
FIND TABELA WHERE CAMPO_CHAR_10 = $concat($Mask(vValor,”99”),DATA_VENCTO)
--> ERRO
FIND TABELA WHERE CAMPO_CHAR_10 = $concat($Mask(vValor,”99”),
$Mask(DATA_VENCTO,”YYYYMMDD”)) --> CERTO
4)
Utilização de campo tipo DATE
a.
Não existe campo DATE com valor “0” (zero), o valor padrão é NULL;
b.
Existem restrições em sua utilização em FIND, ADD, CHANGE, DELETE e
COMPUTE, devido ao modo como o banco de dados Oracle remoto faz o tratamento
deste tipo de campo;
c.
Não é possível fazer atribuição de valor 0 (zero) a um campo do tipo DATE em
comandos Zim, se for necessário inicializar ou zerar um campo do tipo DATE deve-se
utilizar NULL ou atribuir NULL a um campo DATE e utilização na atribuição.
5)
Expressão CASE dentro de uma clausula SORT – compatibilizar tipos de
dados – [ CAMPO2 = char(1) ]
FIND TABELA SORTED BY { CAMPO_NUMERICO1 wh CAMPO2 = "", CAMPO2 } --> ERRO
FIND TABELA SORTED BY { $Mask(CAMPO_NUMERICO1,”9”) wh CAMPO2 = "", CAMPO2 }
--> CERTO
6)
Expressão CASE dentro de uma clausula WHERE
FIND TABELA WHERE CHAVE={CAMPO_NUMERICO1 wh CAMPO3="", CAMPO3} --> ERRO
FIND TABELA WHERE CHAVE={$Mask(CAMPO_NUMERICO3,”99”) wh CAMPO3="",CAMPO3} -> CERTO
Zim 8.x - JDBC SAM
7)
Utilização de CASE utilizando campo do tipo DATE
A expressão {FIELD_DATE,0} é inválida, devendo-se remover o CASE “{}” deixando
somente o campo FIELD_DATE, exemplo:
FIND TABELA WHERE {FIELD_DATE,0} = 0 --> ERRO
FIND TABELA WHERE FIELD_DATE = 0 --> CERTO
NOTA: o comando Zim acima será traduzido para comando SQL abaixo:
SELECT TABELA_PKEY FROM TABELA WHERE FIELD_DATE IS NULL
8)
Utilização de comando “ADD... FROM SET”
Verificar se existem chaves primárias envolvidas, que não podem ser um campo do tipo
ROE.
Estas são as considerações que temos analisadas até agora em nossos projetos de
migração de Zim DB para Oracle DB.
9)
Campos virtuais (incluindo campos do tipo chave):
Deverão ser criadas Triggers no Oracle para manter os campos que antes eram virtuais
no Zim, sendo que no lado do Zim estes campos deverão ter a propriedade REQD com
o valor “ROE”.
10) Chaves Primárias (obrigatório):
É obrigatória a existência de chaves primárias em todas as tabelas da aplicação, se não
houver um campo a ser definido como chave primária (a fim de garantir unicidade), um
campo do tipo Index = “PKEY” e Reqd = “Sequence” deverá ser criado no lado do Zim,
sendo que no lado do Oracle o campo somente receberá um valor gerado
automaticamente pelo Zim (veja abaixo)
Nota:
A Zim possue um serviço de consultoria para migração de ambientes Zim/DB-Zim para
Zim/DB-SQL (Oracle, SQLServer, PostgreSQL e MySQL), onde temos não somente
ferramentas, mas a expertise para a migração com sucesso da aplicação Zim para
utilização de banco de dados padrão SQL.
Para adquirir estes produtos entre em contato com nosso departamento Comercial no
fone: 0800.724.0107 Ramal 132 e falar com o Sr. Leonardo Batisteli.
Download