Autor: Vidal
Martins - GPT - Ramal 381
A evolução constante
e rápida das ferramentas de trabalho dos profissionais de informática
exige um acompanhamento rigoroso das mudanças nesse mercado. E,
atualmente, é tempo de Delphi. Este artigo tem o objetivo de apresentar
uma comparação entre as principais ferramentas de front-end disponíveis
no mercado, usadas no desenvolvimento de aplicações cliente/servidor:
Delphi Client/Server Suite, Visual Basic Enterprise Edition, SQL
Windows e PowerBuilder Enterprise for Windows.
Há muitas semelhanças
entre esses produtos. Por exemplo, todos possuem uma forma rápida
de gerar formulários a partir dos campos de uma tabela ou de uma
query; todos acessam programas externos (DLLs), geram aplicações
orientadas a eventos e aplicações cliente OLE, usam linguagem SQL
e suportam ODBC; todos têm bons geradores de relatório, facilidades
de check-in/check-out e controle de versões. Enfim, embora existam
diversas diferenças entre as ferramentas, elas são capazes de produzir,
basicamente, os mesmos resultados.
Para facilitar sua leitura,
estruturamos o artigo nas seguintes seções:
Resumo da Avaliação:
indica a fonte de pesquisa consultada e apresenta um resumo da
comparação entre os produtos;
Performance:
descreve detalhadamente como foi calculada a nota de performance
desses produtos, durante a avaliação;
Versatilidade:
descreve detalhadamente como foi calculada a nota de versatilidade
dos produtos, durante a avaliação;
Nosso Ponto de
Vista: lista vantagens e desvantagens do Delphi, segundo
o nosso ponto de vista, baseado no curso que fizemos sobre o produto
e na experiência com SQL Windows.
Resumo da
Avaliação
A avaliação das ferramentas
de front-end reproduzida neste artigo foi divulgada em uma publicação
técnica chamada Software Digest, de março de 1996. A Software Digest
é publicada pelo NSTL (National Software Testing Laboratories),
uma divisão da Companhia McGraw-Hill que avalia software e hardware
para PC e LAN.
Para elaborar esse teste,
foram utilizados equipamentos Dell Dimension XPC P90 como estação
de trabalho, dispondo de 24 Mb de RAM, 1 Gb de disco e sistema operacional
Windows NT Workstation 3.51. O banco de dados de teste estava em
uma máquina Digital DECpc Lpx 560 com 32 Mb de RAM, 1 Gb de disco,
sistema operacional Windows NT Server 3.51 e sistema gerenciador
de banco de dados Microsoft SQL Server 6.0.
A base de dados de apoio
ao teste continha informações sobre pedidos de compra de livros.
As tabelas dessa base eram: livros, autores, autor-livro, pedidos
e itens do pedido. Cada item do pedido era, na realidade, um livro
a ser comprado. A carga inicial da base de dados era a seguinte:
125.000 livros, 25.000 autores, 250.000 registros de ligação autor-livro
(10 livros por autor, sendo 2 co-autores por livro), 50.000 pedidos
e 250.000 itens (5 para cada pedido). Antes de iniciar o teste de
cada produto, foi restaurada a base de dados, a partir de um backup,
e reinicializado o servidor de banco de dados. O teste explorou
a potencialidade das ferramentas para consultas de diversas formas,
atualização da base de dados e geração de relatórios. Mais detalhes
sobre os programas que foram codificados podem ser encontrados na
seção Performance deste artigo.
Os critérios de avaliação
adotados nesse comparativo foram os seguintes:
- facilidade de aprendizado:
qualidade da documentação do software para descrever a conectividade
com bancos de dados, o processo de desenvolvimento de aplicações
simples e complexas, a geração de relatórios e o gerenciamento
da aplicação;
- facilidade de uso:
ergonomia do software em relação aos mesmos assuntos do item
anterior - conectividade com bancos de dados, desenvolvimento
de aplicações simples e complexas, geração de relatórios e gerenciamento
da aplicação;
- versatilidade: para
avaliar este critério, foram consideradas mais de 250 características
dos produtos, agrupadas em três categorias:
- acesso aos dados:
trata de como o produto acessa os dados em um ambiente cliente/servidor,
bem como das facilidades para o desenvolvimento de protótipos
localmente e da portabilidade desses protótipos para o ambiente
cliente/servidor. Também inclui os vários bancos de dados suportados,
e o uso das características específicas de cada engine;
- características
das aplicações: trata das funcionalidades que podem ser incorporadas
às aplicações, tais como formulários, queries, relatórios, facilidades
para a manipulação de eventos e gerenciamento de objetos;
- gerenciamento das
aplicações: trata das facilidades para melhorar a produtividade
do desenvolvedor e o gerenciamento do ambiente de desenvolvimento,
incluindo características de workgroup, armazenamento de objetos
e a instalação de aplicações runtime.
- performance: tempo
de resposta em 12 procedimentos diferentes, explicados na próxima
seção.
O resultado final da
avaliação foi este:
Vamos analisar mais algumas
informações interessantes sobre cada produto estudado.
Delphi Client/Server
Suite 2.0
Requisitos:
processador 486/25, 8 Mb de memória para desenvolvimento (12 Mb
recomendado) e 8 Mb para a execução das aplicações, 50 Mb de espaço
em disco, sistema operacional Windows 95 ou Windows NT 3.51.
Pontos fortes:
performance excepcional, versatilidade geral excelente, fácil de
desenvolver aplicações que acessam dados, bom suporte para componentes
customizados.
Limitações:
relativamente difícil de aprender, relativamente fraco em ferramentas
para relatório.
Facilidade de aprendizado:
o NTSL avaliou uma versão prerelease do Delphi, com muitas falhas
de documentação.
Facilidade de uso:
fornece os mecanismos mais convenientes para permitir que as aplicações
acessem bancos de dados (Fields Editor, Mestre/Detalhe, Controle
de Navegação - que permite consulta e atualização-Data Modules);
compila uma aplicação inteira gerando um único arquivo executável;
tem boas facilidades para armazenar objetos customizados e disponibilizá-los
para as aplicações; o tratamento de eventos a nível de registro
é mais difícil do que nos outros produtos; oferece dois geradores
de relatório, um que não está bem integrado com a ferramenta (ReportSmith)
e outro muito bem integrado, mas difícil de usar.
Outras características:
permite sincronizar datasets mestre e detalhe sem programação adicional;
permite incluir, excluir e alterar registros sem qualquer programação
adicional; possui o suporte para automação remota mais completo;
tem o depurador mais robusto (mostra a pilha de chamadas a procedimentos
e funções, característica necessária quando se faz grande reuso
de código); oferece mais opções de instalação; não executa um evento
cada vez que o usuário se movimenta para um novo registro na tela.
Visual Basic Enterprise
Edition 4.0
Requisitos:
processador 486/25, 6 Mb de memória para desenvolvimento e 6 Mb
para a execução das aplicações, 20 Mb a 80 Mb de espaço em disco,
sistema operacional Windows 3.1, Windows 95 ou Windows NT.
Pontos fortes:
boa performance, excelentes ferramentas de relatório, bom suporte
para automação remota, excelente depurador.
Limitações:
faltam facilidades para desenho de formulários que os outros possuem;
é fraco em administração de banco de dados; conexão com banco de
dados apenas via ODBC.
Facilidade de aprendizado:
a documentação do Visual Basic não é tão extensa, mas é bem organizada
com bons índices para busca de informações em cada manual; embora
não seja o único produto a oferecer automação remota, permitindo,
portanto, o particionamento de aplicações, é o único produto que
oferece documentação clara e completa sobre como implementar essa
funcionalidade; falta um pouco de referência cruzada; as diferenças
sintáticas entre os métodos de acesso a banco de dados (Remote Data
Objects e Jet) podem confundir usuários novos.
Facilidade de uso:
é similar ao Delphi em muitas coisas, porém, o acesso a dados da
Microsoft é mais interessante em alguns aspectos; por exemplo, a
navegação está incorporada no data control e não existe controle
data source separado das tabelas e queries; é mais fácil
gerenciar o código relacionado aos objetos do formulário do que
no Delphi; oferece o melhor suporte a OLE 2.0 entre todos os produtos;
possui as melhores ferramentas para desenho e incoporação de relatórios
nas aplicações; muitas características controladas pela configuração
de propriedades no Delphi requer programação no Visual Basic; usar
stored procedures do SQL Server no Visual Basic é mais difícil do
que nos outros produtos. Requer arquivos diferentes de runtime,
dependendo dos componentes utilizados.
Outras características:
fornece excelente suporte para automação remota.
SQL Windows 5.0
Requisitos:
processador 486 para o desenvolvimento e 386 para a execução de
aplicações, 8 Mb de memória para o desenvolvimento e 4 Mb para a
execução de aplicações, 24 Mb de espaço em disco, sistema operacional
Windows 3.1, Windows 95, Windows NT e Win/OS2.
Pontos fortes:
excelentes recursos para trabalho em equipe, acesso a bancos de
dados robusto, excelente versatilidade em geral.
Limitações:
performance inferior, não suporta aplicações 32-bits, relativamente
difícil de usar.
Facilidade de aprendizado:
o SQL Windows é o produto mais complexo e oferece apenas manuais
de referência para os vários componentes, ao invés de descrições
de procedimentos (instruções how-to).
Facilidade de uso:
possui um conjunto padrão de arquivos runtime para distribuição;
o Team Windows fornece o suporte mais compreensivo para desenvolvimento
em equipe, mas ele não está bem integrado com o resto da ferramenta;
o Outliner do SQL Windows é a interface menos amigável de todos
os produtos, sendo que a alternância entre o formulário visual e
o código do programa é um tanto desajeitada; um ponto positivo é
que o Outliner permite selecionar eventos, funções, variáveis, etc.,
de caixas de listagem, durante a codificação; os usuários podem
desenhar formulários através de ferramentas visuais como Quest e
QuickForms, mas o NSTL não pôde usá-las devido à limitação em 32.768
registros; para datasets maiores é necessário usar cursores SQL
e transferir os dados desses cursores para os campos da tela via
programação; emprega um conjunto complexo de procedimentos para
controlar relatórios produzidos através do Report Windows.
Outras características:
a manipulação de eventos do SQL Windows é a mais completa; suporta
a maior quantidade de características específicas dos bancos de
dados.
PowerBuilder Enterprise
for Windows 4.0
Requisitos:
processador 386, 8 Mb de memória para desenvolvimento e 8 Mb para
a execução das aplicações, 19 Mb de espaço em disco, sistema operacional
Windows 3.0 e Windows NT.
Pontos fortes:
excelente documentação, fácil de aprender, fácil de desenhar formulários.
Limitações:
performance inferior, ferramentas de relatório pouco integradas,
poucos recursos para trabalho em equipe.
Facilidade de aprendizado:
fornece um conjunto excepcional de manuais, organizados logicamente
para facilitar tanto o aprendizado quanto referências de usuários
dos mais diversos níveis.
Facilidade de uso:
possui um conjunto padrão de arquivos runtime para distribuição;
fornece excelentes ferramentas visuais que permitem a criação rápida
de objetos DataWindow para acesso ao banco de dados; um ponto negativo
é que o DataWindow é tratado como um único objeto, requerendo movimento
entre o Window Painter e o DataWindow Painter para customizar a
aparência; o tratamento de eventos relacionados aos componentes
individuais dentro de um DataWindow requer programação complexa;
o módulo InfoMaker é uma ferramenta excelente para desenho de relatórios,
porém, é extremamente difícil incorporar relatórios InfoMaker em
aplicações PowerBuilder.
Outras características:
não possui controle de versões embutido; não possui repositório
de objetos; falta suporte para automação remota; tem o depurador
mais fraco de todos.
Performance
Com relação à performance,
a Software Digest faz a seguinte citação: "...O Delphi não
tem rival nas operações de consulta em grandes datasets,
pois gasta menos de um quarto do tempo do seu competidor mais próximo
para acessar o result set completo, e menos da metade do tempo para
aplicar um filtro. Quando ele não é o mais rápido, fica muito próximo
do líder, em todos os casos. A única exceção é para relatórios complexos,
onde o ReportSmith requer tempo extra para conectar com o database;
mesmo assim, ele é o segundo mais rápido, neste caso..."
Para esclarecer de que
forma o NSTL chegou a esta conclusão, apresentaremos a seguir as
doze operações que eles programaram, executaram e cronometraram,
a fim de medir o desempenho dos produtos.
Foi registrado o tempo
necessário para executar a query, para mostrar a primeira página
do relatório no modo preview, para se movimentar até o fim
dele nesse modo, e para imprimir a última página cheia do relatório.
O número apresentado no gráfico representa o tempo acumulado dessas
operações. Para um relatório deste tamanho e complexidade é mais
viável usar o ReportSmith do Delphi. Embora tenha sido gasto um
tempo extra para carregar o ReportSmith, e a velocidade de impressão
tenha sido um pouco mais lenta, a sua velocidade de recuperação
de dados foi substancialmente mais rápida neste teste. No relatório
simples ele foi mais do que duas vezes mais lento que o componente
integrado.
1. Análise
de String
Leitura de arquivo
texto contendo registros cujos valores são separados por tabulações
e vírgulas. O programa quebra o string em partes, realiza processamento
baseado nos valores dessas partes e carrega os resultados para uma
tabela do formulário. Ele não faz acesso a banco de dados
2. Pesquisa
pelo ISBN
O usuário entra
com um ISBN e o programa mostra todas as informações do respectivo
livro, incluindo uma listagem dos co-autores. Em seguida, o usuário
entra com a quantidade que deseja comprar e o programa adiciona
uma linha na tela para esse item do pedido.
3. Pesquisa
por Autor
O usuário entra
com nome parcial e o programa lista todos os autores correspondentes
a esse nome. Em seguida, o usuário seleciona o autor da lista e
o programa lista todos os livros escritos por esse autor. Finalmente,
o usuário seleciona um livro e o processamento continua como na
pesquisa pelo ISBN.
4. Pesquisa
pelo Título
O usuário entra
com um título parcial de livro e o programa lista todos os livros
correnpondentes. Em seguida, o usuário seleciona um livro e o processamento
continua como na pesquisa pelo ISBN.
5. Inclusão
de Pedido
O pedido construído
durante os três testes anteriores é cadastrado. Isto envolve a inclusão
de um registro na tabela de produtos e, para cada item solicitado,
a inclusão de um registro na tabela de itens e atualização do livro
correspondente. Delphi e Visual Basic contróem um único comando
para realizar todos os inserts e updates, e manda isso como uma
única operação para o banco de dados. PowerBuilder e SQL Windows
usam comandos padrão SQL com variáveis de programa. O SQL Windows
empacota em uma única operação todos os inserts na tabela de itens.
6. Consula
à Tabela de Pedidos
Foi registrado
o tempo necessário para carregar a tela de consulta dos pedidos.
Isto envolve a leitura dos registros da tabela de pedidos e a apresentação
do primeito deles, acompanhado dos itens correspondentes (mestre/detalhe).
O SQL Windows permite passar o controle da aplicação para o usuário
imediatamente após recuperar os registros necessários para completar
uma tela, e continua lendo os demais registros do result set em
background. Por isso, a sua superioridade neste teste. O PowerBuilder
também oferece esta opção, mas quando ela é usada para acessar o
result set completo em operações de filtragem e pesquisa, ela fica
muito limitada. O tempo do Delphi é extraordinário, se considerarmos
que ele acessou o dataset completo (50.000 registros) e então, diferente
do SQL Windows, requer pequeno ou nenhum tempo adicional para acessar
outros registros no dataset.
7. Acesso
Completo ao Dataset
Foi medido o
tempo necessário para se movimentar até o último registro do result
set, partindo do teste anterior, e para mostrar esse registro na
tela, juntamente com os itens de pedido correspondentes. Esse tempo
somado ao do teste anterior representa o tempo total necessário
para um acesso completo ao dataset. O Delphi realmente leva um puco
mais de tempo que o Visual Basic e o PowerBuilder para fazer essa
movimentação (respectivamente 1.1, 0.9, 0.6), porém o seu tempo
total de acesso ainda está completamente isolado.
8. Atualização
do Registro
Depois que um
usuário modificou o valor de um campo do formulário, foi registrado
o tempo necessário para gravar a mudança no banco de dados e retornar
o controle ao usuário. O Visual Basic tem um método de atualização
de linha associado ao remote data control, enquanto o Delphi tem
um botão de update no navigation control. O SQL Windows usa um comando
SQL explícito para atualizar o registro corrente. O PowerBuilder
executa atualizações a nível de DataWindow. Isto permite que múltiplos
registros sejam modificados antes que as alterações sejam gravadas
no banco de dados, mas também requer que seja verificado em todo
o dataset se houve mudança antes de executar o update.
9. Pesquisa
por um valor específico
Usando o formulário
de consulta de pedidos, o programa procura por um registro que contenha
o nome do cliente especificado pelo usuário e mostra esse registro,
juntamente com os itens de pedido correspondentes. O Delphi muda
o índice corrente para fazer a pesquisa. Isto altera a ordem de
classificação dos dados na tela. Para manter a classificação original
é necessário fazer duas pesquisas. O Delphi gasta menos tempo para
fazer essas duas pesquisas do que os outros produtos para fazer
em apenas uma. Visual Basic e SQL Windows não têm facilidades de
pesquisa embutidas, tornando necessário o uso de consultas SQL para
encontrar o registro procurado, determinar sua posição no result
set original, e então mover-se até essa posição.
10. Aplicação
de Filtro
Usando a tela
de consulta de pedidos, o programa aplica um filtro para mostrar
apenas os registros com CEPs dentro do intervalo especificado. Este
teste é parecido com aquele chamado Consulta à Tabela de Pedidos,
mas recupera menos registros. Aparentemente o SQL Windows é menos
eficiente que os seus competidores para abrir um cursor e recuperar
seu primeiro registro.
11. Relatório
Simples
Este teste gera
um relatório contendo registro de uma única tabela, pertencentes
a um intervalo especificado, e classificados por um campo diferente
daquele usado para seleção. Foi medido o tempo necessário para executar
a consulta na qual o relatório está baseado, para mostrar a primeira
página no modo preview, para se movimentar até o fim do relatório
no modo preview e para imprimir a última página cheia do relatório.
O número apresentado representa o tempo acumulado. SQL Delphi, Visual
Basic e SQL Windows executaram o relatório usando suas conexões
existentes com o banco de dados, ao invés de carregar um programa
gerador de relatório separado e estabelecer uma nova conexão. O
Delphi e o Visual Basic transformaram essa vantagem em um tempo
de execução bem superior aos competidores. O Windows desperdiçou
essa vantagem com uma recuperação de dados lenta.
12. Relatório
Complexo
Este teste gera
um relatório contendo os pedidos pertencentes a um intervalo especificado,
todos os itens desses pedidos, incluindo o título do livro, e todos
os autores de cada livro solicitado. O relatório está baseado em
um join de 5 tabelas e possui 2 níveis de agrupamento aninhados.
O título do livro excede a largura do relatório. Portanto, a parte
que sobra é jogada para linha de baixo sem hifenização (word-wrapped).
A ordem de classificação está baseada em um campo diferente daquele
usado para a seleção dos dados.
Versatilidade
No relatório original
do NSTL, cada item de versatilidade tem uma definição associada.
A partir dessas definições foram avaliados todos os produtos. O
objetivo era garantir igualdade de condições nos testes, pois o
NSTL reconhece que os diversos produtos podem usar a mesma terminologia
com significados diferentes. Cada característica de cada produto
foi estudada usando a documentação disponível e teste prático. Os
resultados foram verificados com os vendedores. A decisão final
de dar ou não o crédito ao produto para uma característica foi do
NSTL, depois de comparar a sua própria definição com a documentação
do produto.
A tabela abaixo contém
todas as características que foram apreciadas para medir a versatilidade
dos produtos, e uma marca indicando quem recebeu o crédito. Uma
descrição detalhada sobre o que significa cada característica pode
ser encontrada no relatório original do NSTL.
| |
|
Delphi
|
Visual
Basic |
Power
Builder |
SQL
Windows |
| |
SUPORTE
A ENGINE |
| 2
|
Microsoft
SQL Server |
ü |
ü |
ü |
ü |
| 2
|
Sybase SQL
Server |
ü |
ü |
ü |
ü |
| 2
|
Oracle |
ü |
ü |
ü |
ü |
| 1
|
SQLBase |
|
|
ü |
ü |
| 1
|
Informix |
ü |
|
ü |
ü |
| 1
|
Interbase |
ü |
|
|
|
| 1
|
DB2 |
ü |
|
ü |
ü |
| 2
|
ODBC |
ü |
ü |
ü |
ü |
| |
SUPORTE
A LINGUAGEM SQL |
| 2
|
SQL genérico |
ü |
ü |
ECN
|
ü |
| 2
|
SQL Nativo |
ü |
ü |
ü |
ü |
| 1
|
SQL genérico
e nativo na mesma transação |
ü |
ü |
ECN
|
ü |
| 1
|
Acessa banco
de dados a partir de uma dll dentro da transação |
ü |
ü |
ü |
ü |
| 1
|
Usa variáveis
de programa na sql |
ü |
ü |
ü |
ü |
| 1
|
Usa variáveis
de formulário na sql |
ü |
ü |
ü |
ü |
| 2
|
Join transparente
entre Engines |
ü |
JET
|
|
|
| |
BANCO
DE DADOS LOCAL |
| 2
|
Aplicações
isoladas |
ü |
ü |
ü |
ü |
| 2
|
Banco de
dados local padrão sql |
ü |
JAS
|
ü |
ü |
| 2
|
Versão servidor
para banco local |
ü |
|
ü |
ü |
| 2
|
Código compatível
engine local e servidor |
ü |
ü |
ü |
ü |
| 2
|
Formulários
compatíveis para engine local e servidor |
ü |
ü |
ü |
ü |
| 2
|
Faz join
entre tabelas locais e do servidor |
RMD
|
ü |
ü |
ü |
| 1
|
Portável
mudando apenas a especificação de conexão |
ü |
ü |
ü |
ü |
| 1
|
Muda a origem
dos dados de um formulário sem ter que redefinir campo a campo |
ü |
ü |
ü |
ü |
| 1
|
Copia tabelas
do local para o servidor |
ü |
PS
|
ü |
ü |
| 1
|
Copia tabelas
inclusive índices |
ü |
PS
|
|
ü |
| |
CARACTERÍSTICAS
ESPECÍFICAS DO BANCO |
| 1
|
Cursores
roláveis para Sql Server |
|
ü |
ü |
ü |
| 1
|
Cursores
roláveis para Sql Base |
|
DOB
|
ü |
ü |
| 1
|
Cursores
do servidor |
|
ü |
|
|
| 1
|
Update where
current |
ü |
ü |
ü |
ü |
| 1
|
Permite
que um comando sql manipule array no Oracle |
|
|
ü |
ü |
| 1
|
Permite
a execução de Stored Procedures que retornam dados no Sql Server |
ü |
ü |
ü |
ü |
| 2
|
Múltiplos
results sets no Sql Server |
|
ü |
|
ü |
| 2
|
Permite
que comandos sql sejam processados uma vez e executados repetidamente |
ü |
ü |
|
ü |
| 1
|
load/unload
em massa (bulk) |
FE
|
|
|
ABS
|
| 1
|
Suporta
o modo browse do Sql Server |
|
ü |
|
ü |
| 1
|
Níveis de
isolamento do Sql Base |
ü |
DOB
|
ü |
ü |
| 1
|
Validação
Rowid do Sql Base |
|
DOB
|
|
ü |
| 1
|
Atualiza
visões |
ü |
ü |
ü |
ü |
| |
SUPORTE
A TIPOS DE DADOS |
| 2
|
Textos longos |
ü |
ü |
ü |
ü |
| 2
|
BLOB |
ü |
ü |
ü |
ü |
| 1
|
Date, time
e datetime |
ü |
ü |
ü |
ü |
| 1
|
Tipos de
dados definidos pelo usuário a nível de banco de dados |
|
|
|
ü |
| |
ADMINISTRAÇÃO
DE BANCO DE DADOS |
| 2
|
Create tables |
ü |
ABL
|
ü |
ü |
| 2
|
Drop tables |
ü |
ABL
|
ü |
ü |
| 1
|
Alter tables |
ü |
ABL
|
ü |
ü |
| 1
|
Create/drop
indexes |
ü |
ABL
|
ü |
ü |
| 1
|
Especificar
chave primária |
ü |
ABL
|
ü |
ü |
| 1
|
Definir
integridade referencial |
ü |
ABL
|
ü |
ü |
| |
CARACTERÍSTICA
DE INTEGRIDADE DE DADOS |
| 2
|
Begin/Commit/Rollback |
ü |
ü |
ü |
ü |
| 2
|
Autocommit
on/off |
ü |
ü |
ü |
ü
|
| 2
|
Incorpora
processamento do formulário na transação |
ü |
ü |
ü |
ü |
| 1
|
Bloqueia
registro corrente do formulário |
|
ü |
|
ü |
| 1
|
Concorrência
otimista com screen refresh |
|
IVP
|
ü |
ü |
| 1
|
Salva/Desfaz
alterações a um único registro do formulário |
ü |
ü |
ü |
ü |
| 1
|
Salva/Desfaz
alterações em múltiplos registros do formulário |
ü |
ü |
ü |
ü |
| 1
|
Salva/Desfaz
alterações em formulário mestre-detalhe |
ü |
ü |
ü |
ü |
| 1
|
Preservação
do contexto do cursor nos formulários |
ü |
ü |
ü |
ü |
| |
CARACTERÍSTICA
DE DESENVOLVIMENTO DA APLICAÇÃO |
| 1
|
Editor visual
de query |
ü |
|
ü |
ü |
| 1
|
Seleciona
objetos de banco de dados de uma lista de opções |
ü |
ü |
ü |
ü |
| 1
|
Result sets
atualizáveis |
ü |
ü |
ü |
ü |
| 1
|
Formulários
podem refazer a consulta em tempo de execução |
ü |
ü |
ü |
ü |
| 1
|
Permite
a entrada de critérios de filtros no formulário |
|
|
ü |
|
| |
QUICK
FORM |
| 2
|
Quick Form
a partir de uma tabela do banco de dados |
ü |
ü |
ü |
ü |
| 2
|
Incorpora
quick form na aplicação |
ü |
ü |
ü |
ü |
| 2
|
Permite
movimentar os campos após a geração do formulário |
ü |
ü |
ü |
ü |
| 2
|
Quick form
do tipo mestre-detalhe |
ü |
|
ü |
ü |
| 2
|
Apresentação
de um único registro |
ü |
ü |
ü |
ü |
| 2
|
Apresentação
de múltiplos registros |
ü |
ü |
ü |
ü |
| 1
|
Browsing
de registros embutidos |
ü |
ü |
|
ü |
| 1
|
Adiciona
registros |
ü |
|
ü |
ü |
| 1
|
Exclui registros |
ü |
|
ü |
ü |
| |
CARACTERÍSTICAS
DE PROJETO DE FORMULÁRIO |
| 2
|
Formato
date/number para campos das bases de dados |
ü |
ü |
ü |
ü |
| 2
|
Máscara
de edição para campos de base de dados |
ü |
ü |
ü |
ü |
| 2
|
Apresentação
de múltiplos registros customizável |
ü |
|
ü |
IVP
|
| 1
|
Múltiplos
registros através da página |
ü |
|
ü |
IVP
|
| 2
|
Campos de
linhas múltiplas |
ü |
ü |
ü |
ü |
| 1
|
Barra de
rolagem vertical nos campos |
ü |
ü |
ü |
ü |
| 1
|
Edição condicional |
ü |
ü |
ü |
ü |
| 1
|
Caixas de
listagem baseadas em valores fixos |
ü |
ü |
ü |
ü |
| 1
|
Caixas de
listagem baseadas em valores do banco de dados |
ü |
ü |
ü |
ü |
| 1
|
Constrói
listas dinamicamente em tempo de execução |
ü |
ü |
ü |
ü
|
| 1
|
Permite
usar botões de opção para configurar opções do programa |
ü |
ü |
ü |
ü |
| 1
|
Permite
usar botões de opção para mostrar e selecionar valores dos campos
do banco de dados |
ü |
ü |
ü |
ü |
| 1
|
Permite
usar caixas de verificação para configurar opções do programa |
ü |
ü |
ü |
ü |
| 1
|
Permite
usar caixas de verificação para mostrar e selecionar valores
dos campos do banco de dados |
ü |
ü |
ü |
ü |
| 1
|
Opções de
cor a nível de objeto |
ü |
ü |
ü |
ü |
| 1
|
Especificação
de fonte |
ü |
ü |
ü |
ü |
| 1
|
Especificação
de cor de texto |
ü |
ü |
ü |
ü |
| 1
|
Suporte
completo a transações |
ü |
ü |
ü |
ü |
| 1
|
Aplicação
de filtro |
ü |
IVP
|
ü |
ü |
| 1
|
Pesquisa
de um registro |
ü |
IVP
|
ü |
AF
|
| |
CARACTERÍSTICAS
DE CONTROLE DA APLICAÇÃO |
| 1
|
Barra de
menu pulldown |
ü |
ü |
ü |
ü |
| 1
|
Menus específicos
para os formulários |
ü |
ü |
ü |
ü |
| 1
|
Construção
dinâmica de menu |
ü |
|
|
ü |
| 1
|
Barra de
ícones customizável |
ü |
ü |
ü |
ü |
| 1
|
Caixa de
mensagem com múltiplos botões |
ü |
ü |
ü |
ü |
| 1
|
Caixas de
diálogo |
ü |
ü |
ü |
ü |
| 1
|
Diálogos
com múltiplas páginas (guias) |
ü |
ü |
PV
|
ü |
| 1
|
Atribui
procedimento ao botão |
ü |
ü |
ü |
ü |
| 1
|
Formulário
pode chamar outro formulário |
ü |
ü |
ü |
ü |
| 1
|
Formulário
modal e não modal |
ü |
ü |
ü |
ü |
| 1
|
Retorna
múltiplos valores para o formulário de origem |
ü |
ü |
ü |
ü |
| 1
|
Aplicações
MDI |
ü |
ü |
ü |
ü |
| |
TRATAMENTO
DE EVENTOS |
| 2
|
Procedimentos
disparados pelos eventos |
ü |
ü |
ü |
ü |
| 2
|
Detecção
de tecla pressionada |
ü |
ü |
ü |
ü |
| 1
|
Identificação
da tecla pressionada |
ü |
ü |
ü |
ü |
| 2
|
Detecção
do clique do mouse |
ü |
ü |
ü |
ü |
| 1
|
Detecção
do clique no botão direito do mouse |
ü |
ü |
ü |
ü |
| 1
|
Detecção
do duplo clique |
ü |
ü |
ü |
ü |
| 2
|
Evento temporal |
ü |
ü |
ü |
ü |
| 1
|
Abertura
e fechamento de formulá- rios/objetos |
ü |
ü |
ü |
ü |
| 1
|
Get/Lose
foco para formulários/objetos |
ü |
ü |
ü |
ü |
| 1
|
Chegada
de um registro |
SPO
|
ü |
ü |
ü |
| 1
|
Partida
de um registro |
|
ü |
ü |
ü |
| 1
|
Atualização
de um registro |
ü |
ü |
ü |
ü |
| 1
|
Inclusão/exclusão
de registro |
ü |
ü |
ü |
|
| 1
|
Chegada/Partida
de um campo |
ü |
ü |
ü |
ü |
| 1
|
Valor de
campo alterado |
ü |
ü |
ü |
ü |
| 1
|
Atualização
revogada |
ü |
ü |
ü |
ü |
| 1
|
Restauração
do valor original |
ü |
ü |
ü |
RSB
|
| 1
|
Disponibiliza
valor novo e antigo para consistência |
ü |
ü |
ü |
RSB
|
| 1
|
Revoga chegada/partida |
|
|
|