Beruflich Dokumente
Kultur Dokumente
102 p.
S729d
DESENVOLVIMENTO DE SISTEMAS
UTILIZANDO DELPHI E FIREBIRD
Natal RN
Junho de 2005
ii
DESENVOLVIMENTO DE SISTEMAS
UTILIZANDO DELPHI E FIREBIRD
_________________________________________________________________
Prof. MSc. Gilbert Azevedo da Silva
Orientador
_________________________________________________________________
Professor MSc. Raimundo Nonato Camelo Parente
Avaliador 1
_________________________________________________________________
Professor MSc. Eduardo Janser Azevedo Dantas
Avaliador 2
Natal RN,
iii
de
de 2005.
ESTAGIRIO: ___________________________________________________________
CURSO: ______________________________________REA:____________________
01.
40% ( )
60% ( )
80% ( )
100% ( )
executado?
Sim ( )
No ( )
Em parte ( )
05.
06.
No ( )
Regular ( )
Bom ( )
Excelente (
Natal, ______/______/2005
CARIMBO DA EMPRESA/INSTITUIO
iv
SUMRIO
2.
A Empresa ______________________________________________________________2
1.2.
Histrico________________________________________________________________2
1.3.
1.4.
vi
2.5.8.3.
Definio de Variveis___________________________________________41
2.5.9.
Comando de Atribuio______________________________________________42
2.5.10.
Operadores Matemticos __________________________________________43
2.5.11.
Operadores Lgicos_______________________________________________43
2.5.12.
Comandos de Entrada e Sada______________________________________44
2.5.13.
Estruturas de Repetio ___________________________________________45
2.5.13.1. Comando While_________________________________________________45
2.5.13.2. Comando FOR __________________________________________________46
2.5.13.3. Comando REPEAT / UNTIL _______________________________________47
2.5.14.
Estruturas de Seleo _____________________________________________48
2.5.15.
Sub-rotinas_______________________________________________________49
2.5.16.
Variveis Globais e Locais _________________________________________50
2.5.17.
Passagem de Parmetros __________________________________________50
2.5.18.
Funo __________________________________________________________51
2.6. Delphi _________________________________________________________________53
2.6.1.
Introduo _________________________________________________________53
2.6.2.
Conceitos Bsicos do Ambiente Delphi________________________________54
2.6.3.
Ambientes de Desenvolvimento ______________________________________54
2.6.4.
Caractersticas do Delphi ____________________________________________55
2.6.5.
Escrevendo Aplicaes______________________________________________56
2.6.5.1.
Estrutura do Cdigo _____________________________________________56
2.6.5.2.
Arquivos de uma Aplicao ______________________________________58
2.6.5.3.
Arquivos Gerados pela Compilao_______________________________59
2.6.5.4.
Exemplo de Aplicao___________________________________________59
2.6.5.5.
O Arquivo de Projeto (*.DPR) _____________________________________60
2.6.5.6.
As Unidades (*.PAS)_____________________________________________61
2.6.5.7.
Eventos________________________________________________________63
2.6.6.
Elementos Visuais __________________________________________________65
2.6.6.1.
Form __________________________________________________________65
2.6.6.2.
Component Palette (Palheta de Componentes) _____________________66
2.6.6.3.
Object Inspector (Inspetor de Objetos) ____________________________67
2.6.6.4.
Code Editor (Editor de Cdigo) ___________________________________68
2.6.6.5.
SpeedBar ______________________________________________________70
2.6.6.6.
Help On-Line ___________________________________________________71
2.6.7.
Suporte a Programao Orientada a Objeto ____________________________72
2.6.7.1.
Propriedades ___________________________________________________73
2.6.7.2.
Eventos________________________________________________________74
2.7. Delphi Acessando Banco de Dados_______________________________________74
2.7.1.
Introduo _________________________________________________________74
2.7.2.
Relacionamento entre o Delphi e a Conectividade de Banco de Dados ____75
2.7.3.
Ferramentas de Bancos de Dados ____________________________________76
2.7.4.
Borland Database Engine (BDE) ______________________________________76
2.7.5.
Relacionamento entre o BDE e Outros Produtos Borland ________________77
2.7.6.
Database Desktop __________________________________________________77
2.7.7.
Descrio do Componente DataSource ________________________________78
2.7.8.
Descrio dos Componentes da Guia BDE _____________________________79
2.7.9.
Descrio dos Componentes Data Control _____________________________80
2.7.10.
Usando DataSets _________________________________________________82
2.7.10.1. Abrindo e Fechando DataSets ____________________________________82
2.7.10.2. Navegando no Dataset __________________________________________83
2.7.10.3. Modificando Dados no Dataset ___________________________________83
2.7.10.4. Lendo Valores do Campo ________________________________________84
2.8. Conexo do Delphi com Interbase/Firebird_________________________________84
2.8.1.
Montando uma Conexo_____________________________________________85
2.8.2.
Acessando Dados __________________________________________________87
2.8.2.1.
Utilizando o IBDataSet___________________________________________88
2.8.2.2.
Utilizando o IBSQL ______________________________________________90
vii
3.
METODOLOGIA __________________________________________________________92
4.
RESULTADOS____________________________________________________________93
5.
CONCLUSO ____________________________________________________________98
6.
BIBLIOGRAFIA________________________________________________________________100
ANEXO A_____________________________________________________________________101
viii
LISTA DE FIGURAS
ix
LISTA DE TABELAS
LISTA DE EXEMPLOS
xi
RESUMO
xii
ABSTRACT
This Report describes the participation of the trainee Silvio Oliveira de Souza Filho
in the development and maintenance of the systems created by the Accessus
Consultores e Associados in the figure of the Analyst of Systems Zalkind Lincoln.
The objective of the period of training was to make improvements in the Patho
Control, system of elaboration and emission of findings and management of
laboratories of Pathological Anatomy, and in the Cyto Control, system of
elaboration and emission of findings and management of laboratories of
Citopatologia. Despite these systems already being in maintenance phase, they
had the necessity to increase the speed of implementations and to make changes
demanded for many users. It was used during the period of training the integrated
development environment Delphi 5, database MS Access 2000, being this had
access through the Borland Database Engine - BDE. During the period of training
it was basically demanded knowledge of database and programming language.
The modeling of the database is important for a good functioning of the
application, it will go to guarantee speed and the adequate recovery of the inserted
information in the data base, besides facilitating the programming work. The
Pascal programming language that is used by the Delphi for the creation of the
applications is simple, but it offers all the necessary resources for the construction
of applications, what together with the visual environment supplied by the Delphi it
becomes the process of creation simple, fast and practical. One of modifications
that we give to prominence was the migration of the code source for Delphi 6,
elimination of the access through the BDE and alteration of the database for the
Firebird, that besides providing a faster access, offer a greater security and
stability, is total free. To reach these objectives, were used as research source
the notations of lesson of diverse disciplines, books about Delphi, manuals of
components used in the development and the Internet.
Keywords:
Database
Software development
Delphi
xiii
INTRODUO
1. CARACTERIZAO DA INSTITUIO
1.1.
A Empresa
A Accessus Consultores e Associados tem como objetivo produzir e
1.2.
Histrico
Aps a concluso do curso de Cincia da Computao na Universidade
Federal
do
Rio
Grande
do
Norte
(UFRN), Zalkind
Lincoln
iniciou
1.3.
Vetor de Negcios
A
Accessus
Consultores
Associados
se
especializou
no
1.4.
em
seus
softwares,
Zalkind,
responsvel
pelo
setor
de
2. FUNDAMENTAO TERICA
2.1.
Banco de Dados
2.1.1. Introduo
A tecnologia aplicada aos mtodos de armazenamento de
informaes vem crescendo e gerando um impacto cada vez maior no uso de
computadores em qualquer rea em que os mesmos podem ser aplicados.
Um "banco de dados" pode ser definido como um conjunto de
"dados" devidamente relacionados. Por "dados" podemos compreender como
"fatos conhecidos" que podem ser armazenados e que possuem um significado
implcito. Porm, o significado do termo "banco de dados" mais restrito que
simplesmente a definio dada acima.
2.1.2. Conceito
Banco de Dados uma coleo de dados inter-relacionados,
representando informaes sobre um domnio especfico. Pode ser definido
tambm como uma coleo de dados organizados de tal forma que possam ser
acessados e utilizados por muitas aplicaes diferentes. Como exemplo de banco
de dados temos: uma lista telefnica, o controle do acervo de uma biblioteca e o
sistema de controle dos recursos humanos de uma empresa.
ndices, ou como sero mantidos, ou qual a relao existente entre as tabelas que
dever ser mantida ntegra. Os principais nveis de abstrao existentes so: a)
Nvel fsico - o nvel mais baixo de abstrao. Nele descrito o modo como os
dados
so
realmente
armazenados.
Engloba
complexas
estruturas
de
tem-se
ocorrncia
do
dead-lock.
que
possibilitem
compreenso
do
aplicaes
ou
acessos
pelas
interfaces
possam
este SGBD provavelmente ser trocado por outro que no tenha todas as
caractersticas, mas que tenha um desempenho alto.
2.2.
select
From
montagem da consulta.
10
Operador
=
<>
>
<
>=
<=
BETWEEN ... AND ...
NOT BETWEEN ... AND ...
IN (list)
NOT IN (list)
LIKE
IS NULL
IS NOT NULL
Descrio
Igual
Diferente
maior que
menor que
maior igual que
menor igual que
entre dois valores
no est entre dois valores
existe na lista
no existe na lista
utiliza caracter mscara que varia entre os SGBD. No Interbase e
MS SQL Server, usado (%) e no MS Access, (*). Colocando
(%a%) seria localizada a informao que contivesse a letra a em
qualquer posio do campo. Se fosse usado (a%), no resultado
teramos as informaes que comeassem com a letra a.
Tambm pode ser utilizado o (_). Nesse caso, se tivssemos
(_a%), no resultado haveria as informaes que tm como
segunda letra a vogal a.
um valor nulo
no um valor nulo
Outra clusula SQL order by, que determina a ordem dos valores
no resultado. Caso no seja especificado em contrrio, assumir a ordem
crescente ; caso se queira o contrrio, deve-se colocar a clusula desc aps do
nome da coluna. A consulta contida no Exemplo 4 retorna os nomes dos
pacientes ordenados pelo nome.
select NOME from PACIENTES
order by NOME
Exemplo 4: ORDER BY
12
Exemplo 8: INSERT
Exemplo 9: DELETE
2.3.1. Histrico
O banco de dados Interbase foi originalmente concebido e criado
por um grupo de engenheiros de sistemas, funcionrios da DEC (Digital
Equipment Corporation), que desejavam produzir um SGBDR - sistema
gerenciador de banco de dados relacional, inovador e que substancialmente
oferecesse maiores benefcios que os outros sistemas at ento existentes. Na
poca de sua concepo, muita tecnologia j existia como proposta de inovao,
mas nenhum produto a oferecia como recurso ou caracterstica disponvel. Tendo
iniciado em 1985 como Groton Database System, logo mudou de nome para
Interbase. Foi inicialmente comercializado pela Ashton Tate (Dbase) e em 1992
foi entregue Borland como parte de uma negociao de produtos.
Ao
longo
de
seu
desenvolvimento,
foram
consistentemente
15
2.3.2.
Edies do Firebird
Na maioria das plataformas, o Firebird fornecido em duas edies,
2.3.3.
Administrando o Firebird
O Firebird no inclui o aplicativo grfico de administrao do
Interbase, o IBConsole, pois ele no fazia parte da verso aberta. A verso aberta
inclua o IBClient, cliente escrito em Java (mas no "100% pure" Java) ao qual o
Projeto Firebird decidiu no dar continuidade devido aos problemas de
compatibilidade com verses do Java e necessidade de configurao extra de
18
2.3.4. Caractersticas
O Firebird foi desenvolvido de acordo com o conceito de
"Atomicidade, Consistncia, Isolamento e Durabilidade". Outras caractersticas:
20
muitas
configuraes
de
caracteres
para
desenvolvedores,
conectividade, etc.
23
Bibliotecas
UDF,
ferramentas
de
2.3.5. Comparao
Como o Firebird, tambm temos o MySQL e PostGreSQL como
banco de dados gratuitos. A Tabela 1 sumariza algumas diferenas entre os trs
principais bancos livres.
Recurso
Transaes
Procedimentos armazenados
(incompatveis com ODBC)
Triggers
Integridade referencial
Consultas aninhadas (subselects)
Outer Joins
Funes agregadas (count, sum, avg, ...)
Recursos para OLAP / DatawareHouse
Extenses Orientadas a Objetos
Servidor baseado em mltiplos processos
Servidor baseado em mltiplas threads
Acesso direto, sem servidor
Um arquivo por tabela
Firebird
Sim
MySQL 3.x
opcional
PostgreSQL
sim
sim
no
sim
sim
sim
sim
sim
algumas
no
no
sim (CS)
sim (SS)
sim (CS)
no
sim
sim
sim
sim
muitas
no
sim
sim
no
no
sim
no
sim
sim
no
no
no
no
no
poucas
no
no
no
sim
no
sim
sim (via
links, apenas
Linux/Unix)
sim
sim
sim
24
2.4.
Modelos de Dados
Os modelos de dados so formas de definir um banco de dados
de
objetos
do
mundo
real
cujos
membros
Entidade
fraca
ou
subordinada:
existencialmente
Figura 2: relacionamento
pode
ter
vrios
alunos
matriculados.
Logo
mostra um
Figura 3: cardinalidade
se
um
aluno
deve,
obrigatoriamente,
estar
28
Figura 4: auto-relacionamento
Agregao:
uma
abstrao
atravs
da
qual
os
outras
entidades.
No
DER,
uma
agregao
Figura 5: agregao
Figura 6: generalizao
Figura 7: especializao
razo para esse grande uso que o modelo relacional permite acessos aos
dados de forma eficiente, sendo baseado em noes simples e intuitivas. Neste
modelo, um banco de dados representado por uma coleo de tabelas. Alguns
conceitos importantes so:
2.5.
Algoritmo
uma
representao
grfica
de
algoritmos
onde
formas
35
No
Escreva
Aprovado
Escreva
Reprovado
Fim
2.5.6. Pseudocdigo
Esta forma de representao de algoritmos, tambm conhecida
como portugus estruturado ou portugol, bastante rica em detalhes e, por
assemelhar-se bastante forma em que os programas so escritos, encontra
muita aceitao.
37
Onde:
38
Incio
Leia N1, N2
Mdia := (N1+N2)/2
Se Mdia >= 7 Ento
Escreva Aprovado
Seno
Escreva Reprovado
Fim.
Exemplo 13: pseudocdigo
2.5.8. Variveis
O computador possui uma rea de armazenamento conhecida como
memria. Todas as informaes existentes no computador esto ou na memria
primria (memria RAM), ou na memria secundria (discos, fitas, CD-ROM etc).
Aqui iremos tratar, somente com a memria primria, especificamente com as
informaes armazenadas na RAM (memria de acesso aleatrio).
Podemos dizer que uma varivel uma posio de memria,
representada por um nome simblico que atribudo pelo usurio, a qual contm,
num dado instante, uma informao.
40
Pascal
INTEGER:
b) Real
REAL:
e) Caracter
CHAR:
d) Cadeia
STRING:
g) Lgica
BOOLEAN:
WORD:
BYTE:
Shor Int
LongInt
Single
Double
Descrio
Representa os nmeros entre -32768 at +32767.
Ocupa 2 bytes na memria.
-39
38
Representa os nmeros entre 2.9 x 10
at 1.7 x 10 .
Ocupa 6 bytes na memria.
Representa um dos caracteres, da tabela ASCII. Ocupa
1 byte na memria.
Conjunto de caracteres (CHAR). Ocupa de 1 a 255
bytes na memria.
Valor lgico. Assuma somente dois valores:
TRUE(Verdade) ou FALSE(Falso). Ocupa 1 byte na
memria.
Nmeros de 0 at 65535. Ocupa 2 bytes na memria.
Nmeros de 0 at 255. Ocupa 1 byte na memria.
Representa os nmeros entre -128 at 128 . Ocupa 1
bytes na memria.
Representa os nmeros entre - 2.147.483.648 at
2.147.483.648 . Ocupa 4 bytes na memria.
-45
38
Representa os nmeros entre 1.5 x 10
at 3.4 x 10 .
Ocupa 4 bytes na memria.
-324
308
Representa os nmeros entre 5 x 10
at 1.7 x 10 .
Ocupa 8 bytes na memria.
Tabela 5: tipos de dados
PROGRAM Teste;
VAR
Palavra: String;
Letra: CHAR;
Nmero: INTEGER;
BEGIN
<comandos>;
END.
Exemplo 14: definies de variveis
41
2.5.9.
Comando de Atribuio
Quando definimos uma varivel natural atribuirmos a ela uma
PROGRAM Teste;
VAR
Numero: INTEGER;
BEGIN
Numero := 10;
END.
Exemplo 15: atribuio
42
de colocar o valor (dado) entre aspas ( ), pois esta a forma de informar que a
informao caracter.
Operador
+
*
/
DIV
MOD
<>
<=
>=
Tabela 6: operadores matemticos
Operador
AND
OR
NOT
XOR
Tabela 7: operadores lgicos
Resultado
TRUE
FALSE
FALSE
FALSE
Tabela 8: resultados usando AND
Operao
TRUE OR TRUE
TRUE OR FALSE
FALSE OR TRUE
FALSE OR FALSE
Resultado
TRUE
TRUE
TRUE
FALSE
Tabela 9: resultados usando OR
Resultado
NOT TRUE
NOT FALSE
FALSE
TRUE
Tabela 10: resultados usando NOT
PROGRAM LeEscreve
VAR
Num: Integer;
Begin
READ(NUM);
WRITE(Entrada);
END;
Exemplo 16: READ e WRITE
seja, linha nova) no final dos comandos READ e WRITE. Desta forma, os
comandos tero a seguinte grafia: READLN e WRITELN.
PROGRAM WhileMedia;
USES CRT;
VAR
N1,Soma,Media: REAL;
Contador: INTEGER;
BEGIN
45
Contador -1
N1 1
Enquanto N1 <> de Zero Faa
Leia (N1);
Soma N1+ Soma
Contador Contador +1
Fim Enquanto
Media Soma / Contador
Escreva (A media dos Contador
nmeros igual a Media)
Fim do Programa.
CLRSCR;
Soma:=0;
Media:=0;
Contador:=-1;
N1:=1;
WHILE (N1 <> 0) DO
BEGIN
WRITELN('Entre o valor para
se calcular a media dos numeros');
READLN (N1);
Soma:= Soma + N1;
Contador:= Contador + 1;
END;
Media:= Soma / Contador;
WRITELN('A
media
dos
',
Contador,'numeros e=' , Media:2:2);
READLN;
END.
TO <limite superior>
DO
PROGRAM ForMedia;
USES CRT;
VAR
Numero,Soma,Media: REAL;
I, Quantidade: INTEGER;
BEGIN
CLRSCR;
Soma:=0;
46
PROGRAM Repsoma;
USES CRT;
VAR Numero,Soma:INTEGER;
BEGIN
CLRSCR;
Soma:=0;
WRITELN('Entre
com
o
numero da sequencia');
READLN (Numero);
REPEAT
Soma:= Soma+Numero;
Numero:= Numero-1;
UNTIL (Numero=0);
WRITELN
('A
Soma
47
ultimo
desta
PROGRAM Ifmedia3;
USES CRT;
VAR N1,N2,N3,MA: REAL;
BEGIN
CLRSCR;
WRITELN('Entre
com
as
tres
notas do aluno para calcular a
media');
READLN (N1,N2,N3);
MA:= (N1+N2+N3) / 3;
IF MA > 6.0 THEN
BEGIN
WRITELN('O
Aluno
foi
48
Aprovado');
WRITELN('A
sua
media
e=
',MA:2:2);
END
ELSE
BEGIN
WRITELN('O
Aluno
foi
Reprovado');
WRITELN('A sua media e=
',MA:2:2);
END;
READLN;
END.
Exemplo 24: IF
2.5.15. Sub-rotinas
Quando se necessita construir um grande sistema, deve-se dividir tal
programa em partes, sendo ento desenvolvida cada parte em separado. Depois,
tais partes so acopladas para formar o sistema. Essas partes, em que o
programa particionado e desenvolvido parte, so o que chamamos de subrotinas.
Sub-Rotina , ento, um pedao de cdigo computacional que
executa uma funo bem definida, sendo que esta sub-rotina pode ser utilizada
vrias vezes no programa.
Uma procedure um tipo de sub -rotina que ativada atravs da
colocao de seu nome em alguma parte do programa. Desta forma, assim que o
nome de uma procedure encontrado, ocorre um desvio no programa, para que
os comandos da sub-rotina sejam executados. Ao trmino da sub -rotina, a
execuo retornar ao ponto subseqente chamada da procedure. No Exemplo
25 vemos a definio da procedure EscreverNoVideo, que responsvel por
escrever a palavra fim na tela.
PROGRAM Teste;
PROCEDURE
BEGIN
EscreveNoVideo;
49
WRITE(fim);
END;
BEGIN
READ(N);
EscreveNoVideo;
END.
Exemplo 25: estrutura de uma PROCEDURE
: INTEGER;
: STRING;
50
2.5.18. Funo
Uma sub-rotina do tipo function possui as mesmas caractersticas de
uma procedure no que se refere a passagem de parmetros, variveis globais e
locais, mas possui uma importante diferena, que o retorno de um valor ao
trmino de sua execuo, ou seja, uma function sempre dever retornar um valor
a quem a chamou.
51
Para informar qual o valor deve ser retornado, deve ser colocada,
em algum ponto do cdigo da function, uma linha com a seguinte sintaxe do
Exemplo 28.
result := <valor a ser retornado>;
Exemplo 28: valor a ser retornado pela FUNCTION
52
2.6.
Delphi
2.6.1. Introduo
O nome Delphi faz referncia Delphos, o nome da localidade onde
se situava um templo dedicado ao Deus Apolo. Nesse local, havia um orculo
para onde os cidados gregos se dirigiam para perguntar sobre o futuro s
Pitonisas, videntes do local.
Essa a origem do nome dado ao ambiente de desenvolvimento de
aplicaes, orientado a objeto, que permite o desenvolvimento de poderosas
aplicaes baseadas no MS Windows com o mnimo de codificao. Ele foi criado
pela Borland em 1995. Incorpora modernos conceitos de programao visual
combinados aos poderosos recursos da linguagem Object Pascal.
O Delphi (e os compiladores da Borland) utili za um compilador
extremamente otimizado, oriundo de mais de uma dcada de experincia em
compiladores para a linguagem Pascal, da qual deriva.
A linguagem Delphi considerada como uma das mais completas e
abrangentes j criadas at hoje, incluindo recursos como orientao a objetos,
blocos protegidos, tratamento de excees, eventos, propriedades, entre outros.
O Delphi oferece ferramentas de desenvolvimento, tais como
templates de aplicaes e forms (janelas), que permitem criar e testar
rapidamente o prottipo de aplicaes. Pode-se utilizar o conjunto de
componentes e cdigo gerado para transformar prottipos em aplicaes robustas
que satisfaam s necessidades. Alm disso, tambm possui ferramentas de
bancos de dados que permitem desenvolver aplicaes Client/Server e relatrios.
As ferramentas de bancos de dados permitem a visualizao de dados
53
54
55
56
57
Funo
.PAS
.DFM
Arquivo grfico
formulrio
.OPT
opes do projeto
.RES
Recursos
do
Compilador
Backup do Projeto
Backup da Unit
Backup do Arquivo
grfico do formulrio
.~DPR
1
.~PAS
1
.~DFM
.DSK
do
Situao da rea de
Trabalho
[1]: so arquivos de backup (menu Tools, Editor Options..., guia Display, opo Create
Backup Files).
Tabela 11: arquivos de uma aplicao
58
.DCU
Definio
Arquivo
compilado
executvel
Funo
Este um arquivo executvel distribuivel de sua
aplicao. Este arquivo incorpora todos os arquivos
.DCU gerados quando sua aplicao compilada. O
Arquivo .DCU no necessrio distribuir em sua
aplicao.
Cdigo objeto A compilao cria um arquivo .DCU para cada .PAS no
da Unit
projeto.
Tabela 12: arquivos gerados na compilao
MAINWND.PAS
MAINWND.DFM
ABOUT.PAS
ABOUT.DFM
SEARCH.PAS
Representao
Arquivo de projeto da aplicao. Nada mais do que o mdulo program de
um programa escrito em pascal
Opes de compilao do aplicativo, tais como forma de otimizao,
gerao de tabelas de smbolos e outros.
Contm os recursos do aplicativo final. Recursos so cones, bitmaps,
tabelas de strings e outros elementos comuns a programas escritos para o
ambiente Windows
Cdigo fonte da unidade MainWnd
Representao binria do formulrio contido na unidade MAINWND.PAS
Cdigo fonte da unidade About
Representao binria do formulrio contido na unidade ABOUT.PAS;
Cdigo fonte da unidade SEARCH
Tabela 13: exemplo de arquivos de uma aplicao
59
60
begin
Application.Title := 'Bloco de Notas Sythus';
Application.CreateForm(TFormBlocoNotas,
FormBlocoNotas);
Application.Run;
end.
unidade
pode
conter
declaraes
de
tipos,
variveis,
componentes
que
esto
includos no Form.
As
62
OKButton: TBitBtn;
ProgramIcon: TImage;
ProductName: TLabel;
Version: TLabel;
Copyright: TLabel;
Comments: TLabel;
procedure OKButtonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.DFM}
procedure TAboutBox.OKButtonClick(Sender: TObject);
begin
Close;
end;
end.
2.6.5.7. Eventos
A linguagem Delphi, assim como a maioria das linguagens
desenvolvidas para o ambiente Windows, suporta tambm o conceito de
orientao a eventos.
Isto significa que o cdigo escrito pelo usurio no possui uma
seqncia clara de execuo, como teria em uma linguagem tradicional para o
ambiente DOS.
Um bom exemplo pode ser a entrada de caracteres em um campo
comum de texto. Normalmente, em uma linguagem convencional, o usurio
precisaria escrever uma rotina que lesse uma seqncia de caracteres um a um e
os colocasse em uma string final. Caso precisasse que algum caractere tivesse
63
algum tipo de tratamento especial, por exemplo, a tecla enter para indicar o final
da entrada, tambm precisaria adicionar este cdigo dentro da seqncia de
leitura.
No Delphi j existe um cdigo padro para entrada de caracteres em
uma classe de nome TEdit. Dentro deste cdigo padro, a cada caractere lido, a
biblioteca verifica se o usurio escreveu alguma rotina para tratar os caracteres
individualmente e, caso exista, ele a chama. Em outras palavras, o usurio
escreve um tratador (a rotina) para um evento (o caractere digitado).
Estes tratadores so implementados como mtodos da classe
associada ao formulrio que contm os componentes que geram os eventos e
no como mtodos do prprio componente.
No cdigo abaixo gerado para um formulrio que contm um nico
boto, o tratador associado ao evento clicar (click) do boto implementado como
mtodo da classe associada ao formulrio e no como um mtodo da classe
BitBtn, que define o boto.
unit About;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;
type
TDlgAbout = class(TForm)
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
end;
implementation
{$R *.DFM}
64
end.
2.6.6.1. Form
A utilizao de form a caracterstica central das aplicaes Delphi.
Quando o Delphi aberto, um form se torna uma janela em sua aplicao.
Quando estiver desenvolvendo a interface de usurio de uma aplicao,
65
66
Se
mltiplos
componentes
so
selecionados,
somente
as
67
Seletor de Objetos
(mostra o nome e o tipo
de objeto selecionado)
Pgina de Propriedades
Pgina de Eventos
Coluna de Propriedades
Coluna de Valores
Propriedades aninhadas
68
69
2.6.6.5. SpeedBar
A SpeedBar feita de botes que economizam tempo, permitindo
que, com um clique, possam ser executadas operaes e comandos mais
comuns. A SpeedBar aparece abaixo da barra de menu, esquerda, e consiste
dos seguintes botes:
70
Boto
New
Descrio
Possibilita a criao de um item
Abre um arquivo existente
Open File
Save File
Save All
Open Project
Add File to Project
Remove File From Project
Help Contents
Select Unit From List
Select Form From list
Exibe o from inativo associado com a unit ativa, ou viceToggle Between a Form and
versa
Unit
Cria um form em branco e uma nova unit associada para
New form
ser adicionado ao projeto
Compila e executa sua aplicao
Run
Interrompe momentaneamente a execuo da aplicao
Pause
Executa um programa, uma linha por vez e executa cada
Trace into
linha de uma procedure
Executa um programa, uma linha por vez e pula as
Step over
procedures executando-as como uma nica unit
Tabela 14: botes do SpeedBar
71
2.6.7.1. Propriedades
Como vimos, eventos podem estar associados a modificaes em
propriedade de componente e formulrio, ou seja, pode-se modificar propriedades
de formulrios e componentes durante a execuo do sistema. Para isto deve-se
usar a sintaxe: <componente>.<propriedade>;
Por exemplo, para modificar a propriedade text de uma caixa de
edio Edit1 para Bom Dia faz-se: Edit1.Text := Bom Dia;
Se a propriedade do componente tiver sub-propriedades, para
acess-la,
utilize
seguinte
sintaxe:
<componente>.<propriedade>.<sub-
propriedade>
Por exemplo, para modificar a sub -propriedade Name referente a
propriedade fonte, de uma caixa de edio Edit1, para Script, basta fazer:
Edit1.Font.name := Script;
73
2.6.7.2. Eventos
Eventos so aes normalmente geradas pelo usurio, como por
exemplo: o clicar do mouse, pressionar uma tecla do teclado, mover o mouse, etc.
Os eventos podem ser tambm gerados pelo Windows.
Existem eventos associados ao formulrio e cada componente
inserido neste. Exemplos: o OnShow do formulrio ocorre quando mostramos o
formulrio na tela; o componente boto possui o evento OnClick, que ocorre
quando damos um clique com o mouse sobre o boto.
74
75
76
78
Propsito
Um objeto Table refere-se a uma tabela de banco de dados. Deve-se
indicar o nome do banco de dados que quer usar na propriedade
DatabaseName (pode ser prprio nome, um alias ou o caminho do diretrio
em que esto os arquivos da tabela). O Object Inspector lista os nomes
disponveis, o que depende da instalao do BDE. Deve-se indicar o nome
do arquivo que contm a tabela na propriedade TableName.
Uma query mais complexa que uma tabela, porque precisa de uma string
de linguagem SQL. O componente Query tambm tem uma propriedade
DatabaseName, mas no uma propriedade TableName. A tabela est
indicada dentro da declarao SQL, armazenada na propriedade SQL.
Permite que aplicaes executem stored procedures do servidor
Ttable
TQuery
StoredProc
TDatabase
TBacthMove
80
TDBNavigator
TDBLabel
TDBEdit
TDBMemo
TDBImage
TDBListBox
TDBComboBox
TDBCheckBox
TDBRadioGroup
TDBLookupList
TDBLookupCombo
DBCtrlGrid
Propsito
Permite visualizar e editar dados em formato tabular (tipo planilha). Faz
uso extensivo das propriedades do Tfield para determinar a visibilidade
de uma coluna, modo de exibio, e assim por diante. Ela permite
rolagem e navegao e pode-se editar seu contedo
um conjunto de botes usados para navegar e executar aes no
banco de dados
usado para exibir o contedo de um campo que no pode ser
modificado. a verso data-aware do componente TLabel
Permite exibir ou editar um campo de um registro ativo. a verso
data-aware do componente TEdit
usado para permitir que o usurio veja e modifique um grande campo
de texto, eventualmente armazenado em um campo memo ou BLOB
(que significa, em ingls, Grande Objeto Binrio). a verso dataaware do componente TMemo
Permite exibir, recortar, ou colar imagens bitmap BLOB para e de um
registro ativo. a verso data-aware do componente TImage
Permite exibir valores de uma coluna de uma tabela. a verso dataaware do componente TListBox
Permite exibir ou editar valores de uma coluna de uma tabela. a
verso data-aware do componente TComboBox
Permite exibir ou editar um campo de dado Booleano de um registro
ativo. a verso data-aware do componente TCheckBox
Permite exibir ou definir valores de colunas. a verso data-aware do
componente TGroupBox populado com radio buttons
Permite exibir dados de uma tabela de busca durante a execuo. a
verso data-aware do componente TListBox
Permite exibir dados de uma tabela de busca durante a exibio. a
verso data-aware do componente TComboBox
uma grade multi-registro, que pode acomodar diversos outros
controles relacionados com dados. Estes controles so duplicados
para cada registro do data set
Tabela 16: componentes Data Controls
Figura 21: conexo entre Data Control, Data Source, DataSets, BDE e Banco de Dados
82
Descrio
Move o cursor para a primeira linha em um dataset.
Move o cursor para a ultima linha em um dataset.
Move o cursor para a prxima linha em um dataset.
Move o cursor linha anterior em um dataset.
True quando o cursor est no inicio do dataset, em outro caso
false.
True quando o cursor est no final do dataset, em outro caso
false.
Move o cursor para n linhas a frente em um dataset, quando n
um numero inteiro positivo ou negativo.
Descrio
Comfirma qualquer dado pendente e move um registro em branco
para o final do dataset, e coloca o dataset em estado de Insert.
83
Cancel
Delete
DeleteTable
Edit
EmptyTable
Insert
Post
Refresh
Delphi
oferece
acesso
direto
aos
bancos
de
dados
84
estabelecer
uma
conexo
com
banco
de
dados,
85
Nome
IBTable
IBQuery
IBDataSet
Descrio
usado para exibir informaes de uma nica tabela ou view. Se
tratando de aplicao Cliente/Servidor no aconselhado sua utilizao
por ele sempre trazer todas as colunas e todos os registros quando for
ativado.
Fornece acesso somente leitura para uma seleo de informaes,
podendo acessar vrias tabelas. Para possibilitar alteraes nos dados
necessrio associar este componente com TIBUpdateSQL
o componente ideal para ser associado ao DataSource dos
componentes Data-Aware (TDBGrid, TDBEdit...).
87
IBSQL
88
89
a ao que ela deve executar, seja ela alterao (update), insero (insert) ou
excluso (insert), e esta retornar True quando executada corretamente e False
quando ocorrer alg um erro.
function TfmdmAplicacao.ExecutaSQL(acao: string): boolean;
begin
result:=true;
IBSQL.SQL.Text := acao;
try
if IBTransaction.Active then IBTransaction.Commit;
IBTransaction.StartTransaction;
IBSQL.ExecQuery;
IBTransaction.Commit;
except
on E: exception do
begin
result:=false;
IBTransaction.Rollback;
MessageBox(0,PChar('No foi possvel executar o script:' + #13 +
ao + #13 + 'Mensagem: ' + E.Message), 'Erro', MB_OK+MB_ICONERROR);
end;
end;
end;
Exemplo 33: controle de transao e IBSQL
91
3. METODOLOGIA
Para atingir o objetivo almejado no incio do estgio, que era
desenvolver os sistemas Patho Control e Cyto Control, foram utilizadas como
fonte de pesquisa as anotaes de aula de disciplinas como banco de dados e
linguagem de programao, livros sobre Delphi, guia do desenvolvedor do
componente ReportBuilder e, evidentemente , a Internet, atravs principalmente
do site de busca google.
Foram utilizados os seguintes softwares no decorrer do estgio:
Windows 98 segunda edio: sistema operacional da Microsoft amplamente
utilizado por sua praticidade; Delphi 5: ambiente de desenvolvimento integrado
criado pela Borland que utiliza a linguagem Pascal e fornece um ambiente simples
e intuitivo para o desenvolvimento de aplicaes para plataforma Windows;
componente Report Builder: componente que se integra ao Delphi para a criao
de relatrios, e que possui uma grande quantidade de recursos que o Quick
Reports, componentes que o Delphi j traz consigo, no oferece; e, Banco de
dados MS Access 2000: apesar de no se tratar de um banco de dados confivel
e no ser recomendado para aplicaes comerciais, o Access de simples
instalao e manipulao, possibilitando que o prprio usurio final possa
manipular seus dados.
92
4. RESULTADOS
O objetivo do estgio foi de fazer melhorias nos sistemas Patho
Control, sistema de elaborao e emisso de laudos e gerenciamento de
laboratrios de Anatomia Patolgica, e Cyto Control, sistema de elaborao e
emisso de laudos e gerenciamento de laboratrios de Citopatologia. Apesar
desses sistemas j estarem em fase de manuteno, havia a necessidade de
aumentar a velocidade de implementaes e de realizar mudanas exigidas por
muitos usurios espalhados por todo o Brasil.
Ambos os sistemas eram desenvolvidos em Delphi 5 e utilizavam o
banco de dados MS Access 2000. A migrao para outro banco de dados era
uma necessidade para muitos clientes j que, ao atingir um determinado nmero
de registros (quantidade relativamente pequena), o arquivo do banco de dados
corrompia e tornava o sistema extremamente lento. Fazendo um estudo sobre os
SGBD existentes, deu-se preferncia a SGBD gratuitos, j que o custo das
licenas do banco de dados para os clientes seria maior do que com o prprio
sistema. Entre os bancos analisados, o Firebird se destacou por sua velocidade e
estreita ligao com o Delphi.
Para conhecer melhor o sistema e seu propsito foi necessria uma
visita a um de seus usurios e uma boa leitura de documentao disponvel sobre
ele. Dessa forma, poder-se-ia adquirir uma viso mais ampla do sistema em
funcionamento.
Durante todo o estgio, registrei, diariamente, as atividades que iam
sendo realizadas (relatadas a seguir), o que facilitou a elaborao dessa seo do
relatrio.
93
cuja interface pode ser vista na Figura 28. Essa atividade se deu entre os dias
10/5/01 e 28/5/01.
95
96
97
5. CONCLUSO
Durante o decorrer do estgio, foi cumprido o objetivo tanto da
empresa, que necessitava que seus produtos passassem por modificaes, como
do estagirio, que precisava conhecer a realidade de uma empresa de tecnologia
e aprimorar seus conhecimentos.
98
6. RECOMENDAES E SUGESTES
O conhecimento terico obtido no decorrer do curso, tendo em vista
sua grade curricular bastante abrangente, foi bastante til. Mesmo disciplinas que
aparentemente no teriam relao com desenvolvimento de software, como o
caso de Manuteno de Computadores, foram essenciais para a efetividade da
realizao do estgio.
A impressionante rapidez e o dinamismo da informtica, com o
constante surgimento de novas e diferentes tecnologias, so pontos que
dificulta m a definio do contedo de diversas disciplinas. Apesar disso, deve-se
sempre procurar introduzir uma viso de mercado dentro de cada disciplina.
Dentro de seu contedo programado, seria interessante fornecer uma viso das
necessidades do mercado: o que est sendo mais utilizado, quais as tendncias
e, inclusive , dando foco em solues gratuitas que no s so uma realidade,
como tambm, uma forte tendncia em todos os setores da informtica.
O curso de Tecnologia em Informtica superou minhas expectativas,
mostrando-se bem atualizado, um ponto crucial na rea da computao; com uma
exposio prtica, que falta em cursos de graduao; e de uma organizao
impressionante, o que se contrape a realidade de outras instituies de ensino.
99
REFERNCIAS BIBLIOGRFICAS
100
ANEXO A
Plano de Estgio
101
2. DADOS DA EMPRESA
Nome de Fantasia: Accessus Consultores e Associados
Razo Social: Fagundes & Fagundes Ltda
CGC/CNPJ: 01.052.366/0001-77
Endereo: . Nascimento de Castro, 1992 - Lagoa Nova - Natal/RN
3. DADOS DO ESTGIO
Perodo de Durao Previsto: 16/04/2001 16/10/2001
Carga Horria Total Prevista: 720 horas
Carga Horria Semanal Prevista: 6 horas/dia (30 horas)
Horrio de Trabalho Dirio: 8:00 s 14:00
Atividades a serem Desenvolvidas (Sistema de Manuteno do CEFET/RN):
Atividades
Desenvolvimento
de Software
Perodo Estimado
16/04/2001 16/10/2001
Local
Responsvel
Zalkind Lincoln
Zalkind Lincoln
Responsvel pela empresa
102