DIRETÓRIOS Diretórios ZIM Estabelecer um diretório de aplicativo

Propaganda
Zim 8.50 – Diretórios
DIRETÓRIOS
Um diretório é um objeto do aplicativo. Diretórios de aplicativos são usados para organizar os
objetos definidos no Dicionário de Objetos para a aplicação.
Diretórios ZIM
ZIM 8 proporciona uma melhor manipulação de diretórios ZIM (local e estrangeiro), aumentando
o número de diretórios disponíveis 100-240.
Estabelecer um diretório de aplicativo
Chamar o IDE, selecionar diretórios dos objetos drop-down menu, e usar as ferramentas do
Centro de Desenvolvimento para definir o diretório desejado.
Campos do objeto Diretórios
atributos
Descrição
DirName
Localização de diretório de aplicativos da constante
OwnerDirName Localização de diretório de aplicativos do diretório assunto
DirId
Um identificador numérico para o diretório (2-240)
DirId
- O identificador numérico para o diretório.
Valores válidos - Um valor na faixa de 0 a 254 (default = 0)
Observações
- Cada diretório acessado por um aplicativo deve ter uma DirId único.
Se você escolher um DirId de 0, o ID interno do diretório é definido para corresponder ao número
atribuído ao arquivo correspondente do sistema operacional (ou seja, ZIMnnnn onde nnnn é
tipicamente um número entre 0100 e 9999). Dentro de cada aplicação, a identificação interna de
todos os diretórios de aplicativos acessados ao mesmo tempo deve ser exclusivo.
Se o item foreign (estrangeiro) é definido como YES, o DirId deve conter o valor 2 a 254. Se
foreign é definido como NO, mas se o diretório irá ser exportado como um diretório estrangeiro
para outros bancos de dados, DirId ainda deve estar entre 2 a 254.
Diretórios estrangeiros
Zim 8.50 – Diretórios
Cada banco de dados Zim tem seu próprio dicionário de objetos. Todos os objetos (conjuntos de
entidades ou seja, formas, variáveis e assim por diante) que são descritas no dicionário de
objetos são criados em um diretório Zim. Normalmente, um desenvolvedor de aplicativo cria os
diretórios Zim que são usados dentro de um banco de dados particular. Um diretório estrangeiro,
por outro lado, é um diretório Zim, que é definida por um banco de dados, mas é usado por
outros bancos de dados. Ao acessar um diretório estrangeiro, você ganha acesso a todos os
objetos criados nesse diretório.
DIRS.ZIM
Arquivo de configuração igual que as versões anteriores do ZIM. Ele descreve os diretórios
estrangeiros que está sendo acessado por esta aplicação. Se existente, ele está localizado no
<path absoluto> (em outras palavras, cada <path absolut> pode ter um arquivo dirs.zim);
Por que usar um diretório estrangeiro?
Há muitas situações em que um diretório estrangeiro pode ser útil. Um exemplo comum é a caixa
de ferramentas, um banco de dados contendo programas aplicativos que são úteis, e, portanto,
compartilhado entre, muitos bancos de dados diferentes.
Por exemplo, ao desenvolver um aplicativo, você pode ter criado um diretório contendo
programas utilitários. Estes utilitários podem ser úteis em outras situações, mas você não quer
recriá-las para cada novo banco de dados. Seguindo os procedimentos descritos abaixo, o
diretório de utilidade pode ser definida como estrangeiros em outros bancos de dados. O
diretório pode ser usado em outros bancos de dados do que aquele em que ela foi criada.
Como os diretórios estrangeiros são usados.
O procedimento descrito abaixo é uma visão geral de como os diretórios estrangeiros são
usados. O restante desta seção descreve isso com mais detalhes.
Em geral, o uso de um diretório de um banco de dados (banco de dados de host) dentro de outro
banco de dados (banco de dados de conexão) envolve cinco etapas:
1) No Dicionário de Objetos do banco de dados host, definir o diretório de destino, incluindo um
número ID especial do diretório. Crie o diretório, usando o comando CREATE.
2) No Dicionário de Objetos do banco de dados de conexão, definir o diretório de destino
novamente. Esta definição deve ser idêntico ao que no banco de dados host, exceto que o
diretório deve ser definido como estrangeiros.
3) No banco de dados de conexão, criar o diretório, usando o comando CREATE.
4) No prompt do sistema operacional, va para o diretório do sistema operacional que contém o
banco de dados de conexão. Use seu editor de texto para editar o arquivo diretórios estrangeiros
(chamados dirs.zim), adicionando uma entrada que dá a localização do diretório de estrangeiros
no sistema de arquivos.
Zim 8.50 – Diretórios
5) Voltar para o banco de dados de conexão. Use o comando ACCESS para acessar o diretório
estrangeiros.
Um banco de dados de conexão poderá acessar muitos diretórios estrangeiros em simultâneo,
desde que cada diretório tem um número de identificação único diretório. Um único diretório
pode ser acessado como um diretório estrangeiros simultaneamente por muitos bancos de
dados.
Definição de um Dicionário Estrangeiro Descrição detalhada.
Um diretório estrangeiro consiste em dois componentes. O primeiro componente é o diretório
original criado no banco de dados host. É nesse diretório que é acessado por usuários de outros
bancos de dados. O segundo componente é um diretório que é criado como estrangeiro no
banco de dados de conexão.
No banco de dados host.
Se um diretório específico deve ser usado de dentro de outros bancos de dados, o diretório deve
ser criado no banco de dados host, utilizando o procedimento descrito abaixo. O diretório é
criado, essencialmente, de uma forma normal, no entanto, ele deve ser atribuído um número de
identificação especial diretório.
1) Adicionar um registro para EntitySet Diretórios no Dicionário de Objetos. Este registro deve
ser definido assim:
- DirName = nome do diretório
- DirId = número de ID de diretório. Este número deve estar entre 2 e 254. O DirId não deve
entrar em conflito com a DirId de qualquer outro diretório para o qual um usuário pode se
conectar ao mesmo tempo.
- Foreign = NO
2) Crie o diretório da forma normal, usando o comando CREATE. Se os diretórios estrangeiros
arquivo (dirs.zim) pertencentes ao banco de dados host contém uma entrada que corresponda
DirId deste diretório, o arquivo do sistema operacional que corresponde a esse diretório é
transferida para essa entrada.
Nota: O diretório raiz (ou seja, Zim) não pode ser usado como um diretório estrangeiro. Você
deve assumir que o diretório a ser usado em outros bancos de dados é um sub-diretório.
No banco de dados Conexão.
Para permitir que usuários de um outro banco de dados se conectem a um diretório (estrangeiro)
Zim 8.50 – Diretórios
existente,
continue
o
procedimento
acima
com
os
seguintes
passos:
1) No banco de dados conectado, adicionar um registro para Diretórios conjunto de entidades no
Dicionário de Objetos. Este registro deve definir
- DirName ao nome do diretório estrangeiros
- DirId a ID de diretório do diretório estrangeiros
- Foreign para YES
2) Crie o diretório da maneira normal. Porque o campo estrangeiro no registro de diretórios tem
sido definida como Yes, não são criados arquivos para este novo diretório.
Nota: O DirName e DirId do diretório estrangeiro deve ser o mesmo que o DirName e DirId no
banco de dados host.
A nível do Sistema Operacional
Antes que um usuário do banco de dados de conexão possa empregar o comando ACCESS
para se conectar a um diretório estrangeiro, o banco de dados de conexão deve conter uma
diretório estrangeiro (dirs.zim) arquivo com uma entrada descrevendo a localização de cada
diretório estrangeiro. Para criar este arquivo, use um editor de texto no nível do sistema
operacional. O arquivo deve ser armazenado no diretório do sistema operacional que contém o
banco de dados de conexão.
Cada entrada no arquivo de diretórios estrangeiros tem o formato:
dirid file# path
onde:
dirid é o dirid do diretório estrangeiro.
file# é o número do arquivo que corresponde ao diretório no banco de dados host (ou seja, a
zimnnnn nnnn). Para determinar o arquivo#, execute o utilitário ZIMFILES no banco de dados
host ou use o comando:
out $filename (nome do diretório) ou $filepath(objname)
Por exemplo, a entrada:
11 126 \usr\tools
significa que o diretório cujo dirid = 11 pode ser encontrada no arquivo
\usr\tools\zim0126.
Acessar um diretório Estrangeiro
Uma vez que um diretório estrangeiro foi definido e criado no host e nos bancos de dados de
conexão, e o arquivo de diretório estrangeiro existe com a entrada apropriada, o diretório
Zim 8.50 – Diretórios
estrangeiro é acessível a partir do banco de dados de conexão. Para acessar o diretório
estrangeiro, use o seguinte procedimento:
1) Entre no Zim no banco de dados de conexão.
2) Use o comando ACCESS para acessar o diretório estrangeiro pelo nome, como mostrado no
exemplo a seguir: access Utilities read.
Este comando Abre um diretório de aplicativos Zim, permitindo o acesso aos objetos nele
criados.
sintaxe
ACC dirname [READ | UPDATE]
parâmetros
dirname
É o nome de um diretório Zim que deve ser colocado na lista de diretórios.
READ
Indica que o diretório será acessado somente para leitura,não sendo
permitidas alterações. Este é o valor assumido, se nenhum dos dois for
informado (valor padrão).
UPDATE
Especifica que o diretório será acessado tanto para leitura como para
alterações(CREATE, ERASE,ADD,CHANGE ou DELETE).
comentários
Diretórios estrangeiros são sempre acessados como READ, ou seja, em modo de leitura.
exemplo
Para acessar ProjectControl diretório em modo somente leitura, use:
access ProjectControl read ou simplemesmente access ProjectControl
Para acessar o diretório pessoal no modo de atualização, use:
access Pessoal update
Todos os objetos definidos no diretório estrangeiro estão agora disponíveis a partir do banco de
dados de conexão.
A localização de arquivos associados a um diretório
Estrangeiro.
O arquivo dirs.zim especifica a localização do sistema operacional (OS) de arquivo que
corresponde ao diretório estrangeiro. Mas onde é que o sistema deve ver os arquivos que
Zim 8.50 – Diretórios
correspondem aos conjuntos de entidades, relacionamentos, programas e assim por diante que
são definidas no diretório estrangeiro?.
Por padrão, o Zim procura por esses arquivos no caminho especificado no arquivo dirs.zim para
o arquivo do diretório estrangeiros em si. É possível, no entanto, para distribuir esses arquivos
para outras partes do sistema de arquivos usando um arquivo de áreas com nomes de
documentos de arquivo especial no banco de dados host. O procedimento para utilizar um
arquivo de áreas em um banco de dados host é exatamente como descrito para bancos de
dados independentes na distribuição de arquivos de banco de dados.
Exemplo
Para ilustrar, vejamos um exemplo da base Utilities. Considere as informações apresentadas a
seguir:
- O diretório utilitários no banco de dados host é definido no diretório do sistema operacional
D:\UTILPROG. A ID do diretório Utilities é 30.
- No diretório Utilities, três documentos são definidos como mostrado abaixo:
> List all docs
Docname
========
DictReport
ReportOut
UserLog
FileName DirName
======= =======
dict.rep Utilities
)Utilitários report.out
"user.log Utilities
- No diretório Utilities, dois conjuntos de entidades são também definidas como mostrado abaixo:
UtilEnt1 (armazenado no arquivo do sistema operacional ZIM0129)
UtilEnt2 (armazenado no arquivo do sistema operacional ZIM0130)
- No banco de dados host tem um arquivo associado que está localizado, com diretório Utilities,
no diretório do sistema operacional D:/UTILPROG. O arquivo areas.zim contém a entrada de:
129 C:\UTZIM
- O banco de dados de conexão, no arquivo dirs.zim contem uma entrada associado ao
diretório estrangeiro:
30 117 D:\UTILPROG.
- O diretório de trabalho do usuário que se conecta é C:\APPLDIR\USER1.
Dada esta situação, os bancos de dados de conexão e host, ambos contêm um arquivo de
áreas.zim que realoca os arquivos associados a conjuntos de entidades. No banco de dados de
conexão, um arquivo de diretórios estrangeiro D:\UTILPROG estabelece como o local padrão
para todos os arquivos associados a objetos no diretório estrangeiro Utilities. O objeto
Zim 8.50 – Diretórios
estrangeiro ReportOut (um documento) é definida como sendo localizado no diretório de trabalho
de conexão do usuário, similarmente, UserLog é definido como sendo localizado no diretório do
banco de dados de conexão do usuário.
Acessando Entidades estrangeiras
Ao se conectar a um diretório estrangeiro, você ganha acesso aos dados das Entidades e dos
relacionamentos com campos que são definidos nesse diretório.
Para obter acesso Read/write a campos de banco de dados estrangeiro, você pode declarar
esses arquivos como não-compartilhado nas áreas de arquivo associado com o banco de dados
do host. Por exemplo, para obter acesso leitura/gravação para um EntitySet estrangeiro
chamado UtilEnt cujo arquivo correspondente do sistema operacional tem o nome ZIM0185,
você colocaria a entrada:
185 D:\UTILPROG
185 /usr3/utilprog/
% Este é um exemplo Zim em Windows.
% Este é um exemplo Zim em UNIX.
nas áreas de arquivo associado com o banco de dados do host.
No Zim 8, as bases de dados estrangeiras pode ser de leitura ou gravação (read/write) como
qualquer banco de dados normal.
Limitações de Diretórios Extrangeiros.
As seguintes limitações se aplicam ao uso de diretórios estrangeiros:
1) Cada diretório acessado por um aplicativo deve ter um ID de diretório único entre todos os
diretórios que está sendo acessado ao mesmo tempo. Diretórios, neste caso, incluir subdiretórios de diretórios estrangeiros.
2) Um banco de dados não podem se conectar ao diretório raiz (diretório Zim) de outro banco de
dados (ou seja, o diretório raiz não pode ser um diretório estrangeiro).
3) Diretórios estrangeiros não podem ser atualizados usando o COMPILE, UNCOMPILE,
CREATE, ERASE, permissão ou comando RENAME. Você não pode atualizar a definição de
objetos definidos em um diretório estrangeiro.
4) Um banco de dados de conexão não pode se conectar aos diretórios estrangeiros definidos
dentro do diretório estrangeiro do banco de dados host.
Zim 8.50 – Diretórios
5) Arquivos de banco de dados estrangeiro que foram criptografados com um comando
ENCRYPT pode ser acessado a partir de um banco de dados conectando somente se as bases
de dados de conexão e de acolhimento foram ambos inicializados usando a mesma chave de
criptografia. A chave de criptografia é especificado quando o utilitário ZIMINIT é executado para
inicializar um novo objeto Dictionary.
ZimServer
Agora aceita os mesmos diretórios estrangeiros a ser referenciado por mais de um arquivo
dirs.zim, ou seja, mais de um banco de dados têm as mesmas referências do diretórios
estrangeiros.
Configuration Files.
A relação entre os arquivos de configuração é o seguinte: ZIMDB.ZIM descreve onde os bancos
de dados estão. Cada banco de dados contém um arquivo zimconfig.zim, além de um DIRS.ZIM
opcional e um AREAS.ZIM opcional. Cada entrada no DIRS.ZIM aponta para um diretório
estrangeiro que por sua vez (o diretório estrangeiro) pode ter um AREAS.ZIM.
Observação:
- Nas versões do Zim 7.11 e anteriores, o DIRID para Diretórios estrangeiros era definido com
valor igual o maior a 10000, agora o valor varia de 1 a 254 para todos os tipos de diretórios.
- Comentários colocados no final das linhas no arquivo dirs.zim serão interpretados como parte
do caminho do caminho do banco de dados Zim;
- Consultar: $ProgramFileName, $filepath()
Exemplo prático:
A) No banco de dados estrangeiro (chamado neste exemplo como “C:\baseteste”) entre no
Zim e crie um diretório local, caso não esteja criado.
- Add dirs let dirname=”Dirteste” Ownerdirname=”ZIM” DirId=3 foreing=”no”
- Create dir Dirteste
- Out $filepath(Dirteste)
C:\baseteste\zim0100
B) Na base Local (chamado neste exemplo como “C:\baselocal”), entre no zim e crie o
diretório estrangeiro.
- Add dirs let dirname=”Dirteste” Ownerdirname=”ZIM” DirId=3 foreing=”Yes”
- Create directory Dirteste
C) Sair do Zim na base local e nesta mesma base de dados crie o arquivo dirs.zim com as
seguintes informações:
- 3 100 C:\baseteste
Zim 8.50 – Diretórios
Onde,
é o Nr DirId dos dirs em ambas as bases
3
é o Nr. do arquivo externo do dir. da base estrangeira “baseteste”
100
C:\baseteste é o local e nome da base estrangeira.
D)
E)
F)
G)
Execute Stop Zimserver
Execute Start Zimserver
Entre no zim em ambas as bases de dados (baseteste e baselocal)
Na base Local execute: acc Dirteste Read
Observação: o nome dos diretórios (Dirteste) e o Nr DirId (3) tem que ser iguais em ambas
as bases.
O diretório estrangeiro criado na base local, é criada como "zim0000", não tendo nenhum
arquivo externo relacionado com ela, o que significa que a criação de mais de um diretório
externo, sempre vai criar internamente como "zim0000", como é diretório estrangeiro,
localmente não precisa destes arquivos de diretórios.
Download