Histórico da Página
Objetivo | Permitir a utilização do Screen Optimizer em bancos de dados SQL Server. |
Descrição
O produto Otimizador de Telas é compatível com a utilização de bancos de dados SQL Server em ambiente Progress (por intermédio do uso de schema holders
). Neste processo estão descritos as principais características e cuidados que o usuário deve ter ao utilizar este tipo de ambiente.
- Gerador de objetos dinâmicos:
O processo de geração de objetos dinâmicos funciona de uma forma um pouco diferenciada em SQL. Para que se possa atualizar o ambiente, é necessária a geração de instruções SQL e de um arquivo de definições para que se possa atualizar o banco Progress (schema holder
).
Informações | ||
---|---|---|
| ||
O schema holder do banco não deve ser alterado manualmente, deve ser alterado somente por intermédio do Screen Optimizer. |
Ao utilizar o gerador, pode ser exibida uma tela de atualização de banco. Esta tela é gerada pelo utilitário “Loaddf
” do Progress que é utilizado para carregar as definições atualizadas do banco.
Para que se possa gerar os objetos no banco repositório, o banco schema holder (shmgsor)
deve ser conectado no modo monousuário (-1) e não pode estar somente leitura (-RO). Também deve se levar em conta que é necessário que existam as permissões necessárias no banco SQL para que as tabelas e atributos também possam ser criados pelo gerador.
Após gerados os atributos, pode-se conectar o banco schema holder (shmgsor)
em modo somente leitura (-RO). As permissões para criação de tabelas no banco SQL e a conexão em modo monousuário no banco schema holder
são necessárias apenas quando for necessário executar o gerador de objetos dinâmicos.
- Formato dos atributos do banco repositório (SOR):
Ao criar um objeto desse tipo, se a propriedade “Tipo dado” tiver o valor “caracter” o valor da propriedade “Formato” é tomado como valor máximo no banco, ou seja, se um objeto com o mesmo nome for criado em outro perfil ou programa que utiliza a mesma tabela, o valor da propriedade “Formato” não pode exceder o tamanho máximo no banco.
Exemplo:
Cria-se um novo perfil “testando” para o programa “x” e no perfil é criado um objeto do tipo “Atributo SOR” com o nome “teste” e com a propriedade “Formato” com o valor “x(60)” (que especifica um tamanho de até 60 caracteres).
Utiliza-se o gerador de objetos dinâmicos que gera uma tabela de extensão no banco repositório e o atributo “teste” com o formato “x(60)”. Depois se cria um novo perfil chamado “testando2” para o mesmo programa “x”, neste perfil também é criado um objeto do tipo “Atributo SOR” com o mesmo nome “teste” (fazendo com que seja utilizado o mesmo atributo do banco repositório) e com a propriedade “Formato” com o valor “x(80)” (que especifica um tamanho de até 80 caracteres).
O problema acontece porque, no novo objeto criado no perfil “testando2”, o formato permite o uso de até 80 caracteres, mas o formato do banco só permite 60. Para os usuários que utilizarem o perfil “testando”, nenhum problema acontecerá por que o campo só poderá ser preenchido na tela com até 60 caracteres, que é o tamanho máximo, já os usuários que utilizarem o perfil “testando2” terão problemas se ultrapassarem o limite de 60 caracteres, já que o tamanho a ser preenchido na tela é no máximo de 80 caracteres e o tamanho máximo no banco é de 60.
Caso o usuário ultrapasse o limite do banco para determinado atributo, o valor digitado não é salvo em banco e apresenta a seguinte mensagem de erro Progress:
"An overflow of a character value. (6176)"
"22001: [Microsoft][ODBC SQL Server Driver] String data, right truncation"
Para que se possa prevenir este tipo de problema deve-se sempre utilizar o botão de zoom para a propriedade “Nome”, pois assim, se for selecionado o nome de um atributo já existente no banco repositório, o formato do novo objeto é automaticamente atualizado conforme o que já existe no banco.