Você está na página 1de 63

Delphi e Firebird

O que é Firebird ? O Firebird é um banco de dados Cliente/Servidor relacional que é


compatível com SQL-ANSI-92, foi desenvolvido para ser um banco de dados
independente de plataformas e de sistemas operacionais. É compatível com o
Interbase, já que nada mais é do que uma versão grátis do Interbase da Borland, e
melhorada, com alguns bugs de segurança corrigidos. A HostSul não oferece suporte
a Interbase. A versão que utilizamos do Firebird é a 1.0.2

Solicite ao nosso Suporte Técnico a criação de um banco de dados Firebird para você,
informando seu domínio, senha e prontamente você poderá estar utilizando este
fabuloso SGBD.

O Firebird possui várias ferramentas de manutenção, IBConsole(Interbase), IBAcces,


Quick Desk, IBExpert entre outros. Abaixo, iremos apresentar a URL para download
de alguns deles, que você poderá utilizar para gerenciar o seu banco de dados.
Algumas delas são especificamente para Interbase, mas funcionam perfeitamente
com o Firebird, conforme testes que realizamos:

IBConsole - Link para a última versão disponível do IB Console

IB Expert - Mais um administrador de BD Interbase. Interface muito similar ao


QuickDesk, mas contém alguns recursos à mais, como um "preenchedor de tabelas"
para inserir dados de teste nas tabelas, um GRANT manager, etc... Suporta o IB 4,5 e
6 e Firebird 1.0. Possui uma versão FREE para substituir o IBConsole, uma versão
educacional completa que funciona com bancos de até 50MB e a versão shareware
com todos os recursos.

Firebird : banco de dados gratuito, e é excelente.

Interbase: banco de dados não é gratuito.

No campo Search, digite firebird para procurar. ( site http://sourceforge.net/ )

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 1


Instalando Firebird: Dê um clique duplo no Firebird e siga as telas .... veja abaixo ...

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 2


Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 3
Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 4
Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 5
Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 6
Para criar o banco de dados usaremos o IBExpert 2.0 ( site http://www.ibexpert.com/ ).

Baixe a versão free – IB Expert Free Personal Edition , tem algumas limitações mas os

recursos necessários podem ser usados.

( link está na parte inferior direita da tela )

Instalando do IBExpert 2.0: Clique duplo em

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 7


Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 8
Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 9
Execute o IBExpert 2.0

Clique em Database, Create Database ( Shift Alt R ), será aberta a tela abaixo:

 Preencha os campos:

 Digite o caminho Username: SYSDBA


( pasta ) e defina um Password: masterkey
nome para o banco de Page Size: 4096
dados. Charset: ISO8859_1

SQL Dialect: Dialect 3

Após ter clicado OK será mostrada a tela abaixo. Clique no campo Server Version e escolha
o banco de dados Firebird 1.5

Escolha o
banco de dados
Firebird 1.5

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 10


Clique no botão Register

Dê um clique duplo
para conectar o
banco de dados.

Após conectado será mostrada a tela abaixo:

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 11


Criando domínios: O objetivo dos domínios é poupar tempo no momento da
definição dos campos das tabelas, logo abaixo criaremos a tabela clientes e
aplicaremos os domínios que criaremos agora.

Defina o nome Defina o


Defina o tipo idioma
do domínio, note
do campo.
que na frente do
nome escrevi
DOM para saber
que é um
domínio.

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 12


Clique no raio para compilar será mostrada uma tela mostrando o resultado da
compilação, veja na página seguinte:

Clique no botão Commit para confirmar e gravar os domínios criados.

Veja abaixo os domínios criados:

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 13


Criando tabela de Clientes:
A tabela, será o local onde os dados ( registros ) ficarão armazenados.

Posicione o ponteiro do mouse sobre a opção Tables, clique no botão direito, clique
em New Table...

Após clicar na opção New Table, será aberta outra tela onde serão definidos os nomes dos
campos para a tabela, veja abaixo:

Primeiramente, vamos definir um


nome para tabela, mude o nome
de NEW_TABLE para CLIENTES,
após pressione ENTER

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 14


Digite o nome do
campo:
CAMPO_CODIGO

Escolha o domínio DOM_CODIGO


Ao selecionar o domínio DOM_CODIGO automaticamente
definirá o tipo do campo, tamanho, se campo é obrigatório
etc, pois isto já foi definido quando criamos os domínios para
poupar este trabalho agora, na hora da criação da tabela.
Criando índice primário.

Criando índice primário: Dê um


clique duplo logo abaixo de PK
para criar a chave primária
( PK = Primary Key )

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 15


Para confirmar os campos definidos, clique no raio , veja abaixo a tabela gerada.

Para gravar os campos clique no botão Commit.

Campos que foram criados:

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 16


Mostrando pasta onde estão os bancos de dados.

Programando em Delphi

Inicie um projeto novo – File – New Application, procure a aba dbExpress, insira
um componente SQLConnection. Dê um clique duplo em SQLConnection, após
clique no , selecione Interbase, digite um nome para a conexão, por exemplo,
Conexao_fire , clique OK,

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 17


Digite o nome do caminho mais o nome do banco de dados e defina SQLDialect com
o valor 3

Digite o caminho
onde foi armazenado
o banco de dados.

Após definir propriedades do SQLConnection

Insira um componente ClientDataSet1 ( aba Data Access ) e um DataSetProvider1 ( aba


Data Access ), clique em ClientDataSet1, clique na propriedade ProviderName e defina
DataSetProvider1.

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 18


Insira um componente DataSetProvider1, clique neste, defina a propriedade Updated
Mode para upWhereKeyOnly, defina a propriedade DataSet para SQLDataSet1

Insira um componente SQLDataSet1 ( aba dbExpress ), clique neste e defina a propriedade


SQLConnection para SQLConnection1

Clique em SQLDataSet1, pressione F11 para acessar a tela das propriedades, ao


lado da propriedade CommandText clique em ( nos 3 pontinhos ) para abrir uma
tela onde será definida a slq, veja abaixo:

Clique no botão Add Table do SQL, será inserida uma linha de SQL, após clique nos campos
CAMPO_CODIGO, após clique Add Field to SQL, clique CAMPO_NOME após clique Add
Field to SQL. Veja a sql abaixo,está pronta:

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 19


Clique em SQLDataSet1, clique no botão direito, clique em Fields Editor, clique
botão direito, clique Add fields e clique OK.

Clique no componente DataSource1 e defina a propriedade DataSet para ClientDataSet1.


Mostrando a propriedade definidas dos componentes que estão sendo usados:

SQLConnection1

ClientDataSet1

DataSetProvider1

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 20


SQLDataSet1

DataSource1

Insira um componente DBGrid que está na aba Data Control, clique no DBGrid,
pressione F11, clique em DataSource e defina DataSource1...

Dê um clique duplo sobre o


DBGrid, será aberta uma tela
para fazer as colunas, clique
na pastinha amarela onde diz
Add new ( Ins ) , insira duas
colunas, clique na primeira
coluna
( 0 – Tcolumn ), pressione
F11 ( para ir para as
propriedades ), clique em
FieldName, defina o nome do
campo CAMPO_CODIGO,
clique em 1 – Tcolumn, clique
em FieldName e defina
CAMPO_NOME

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 21


Alterando o nome dos
títulos das colunas do
grid:

Clique em
0 – CAMPO_CODIGO,
clique em + Title, clique
em Caption e altere o
nome CAMPO_CODIGO
para Código, visto que o
Delphi atribui o nome do
campo.

Insira um componente DBNavigator1 ( aba Data Controls ), clique na propriedade


DataSource e defina Datasource1.

Clique no
ClientDataSet1 e
defina a propriedade
Active para True.

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 22


Definindo os campos para as colunas do grid, dê um clique duplo no DBGrid

Dê um clique no ícone onde


está apontando o balão ( Add
All Fiends ) para adicionar os
campos.

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 23


IB Expert: Gerando banco de dados a partir de um arquivo script sql ( bancos.sql )

Clique para abrir a tela


onde será inserido o
arquivo de script ( .sql )
gerado pelo Power
Designer, ou outro sql.

Insere arquivo .sql,


para gerar o banco
de dados.

Ex: bancos.gdb

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 24


Clique na setinha
verde para gerar o
banco de dados.

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 25


Instalando Firebird

• Definir variável de ambiente para reconhecer o ISQL em qualquer pasta / diretório

• Executar cada linha abaixo para criar o banco e tabelas

Servidor do Interbase “ Interbase Server Manager “

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 26


Criando banco de dados e tabelas usando ISQL do Firebird

No prompt do Ms-Dos, na pasta onde será criado o banco, neste caso criei a pasta
chamada de gdbs – O nome do banco de dados é banco_dados.fdb ( fdb = firebird
database ) e criamos a tabela Tabela_Usuários

Isql ( enter )

CREATE DATABASE 'banco_dados.fdb' USER 'sysdba' PASSWORD 'masterkey';

CREATE TABLE Tabela_Usuarios Criando a tabela de


( usuários de nome
usuario varchar(25) not null primary key, Tabela_Usuarios
senha varchar(20) not null
);
Inserindo
INSERT INTO Tabela_Usuarios VALUES('Jurandir ', '123'); registros no
INSERT INTO Tabela_Usuarios VALUES('Mike' , 'abc'); banco de
INSERT INTO Tabela_Usuarios VALUES('Eric' , '321'); dados.
INSERT INTO Tabela_Usuarios VALUES('Rubia' , '567');

COMMIT;
EXIT;

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 27


Criando banco de dados e tabelas usando IBConsole

Já vimos anteriormente como criar banco de dados e tabelas com o utilitário do


Firebird chamado de ISQL que é executado no prompt do Ms-Dos, no exemplo a
seguir usaremos o IBConsole.

Clique no primeiro ícone canto superior esquerdo onde mostrará o texto “


Register a new Interbase Server “

User name: SYSDBA


Password: masterkey

Após clicar OK será


mostrada a tela
abaixo.

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 28


Na barra de títulos da tela acima, logo abaixo da opção Database, clique no ícone
SQL , será aberta a tela abaixo. Na tela abaixo usamos o Interactive SQL para
criar o banco de dados, digite o script / código abaixo e clique no raio para criar
o banco de dados.

O banco de dados será criado dentro da pasta onde se encontra o programa


IBConsole

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 29


Para registrar, abrir o banco de dados no IBConsole novamente

Digite a senha
masterkey

Registrando o banco de dados, clique em Databases, clique botão direito, clique em


Register, será aberta uma tela, veja na página seguinte.

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 30


Após clicar OK teremos a tela abaixo:

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 31


Dê um clique duplo sobre a TABELA_USUARIOS, será aberta uma tela mostrando as
propriedades e outros detalhes sobre a tabela em uso.

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 32


Definindo permissões ( direitos ) para determinados usuários. No exemplo abaixo
existem somente o padrão que é o SYSDBA. Vamos adicionar um novo usuário.

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 33


Grant  Usuário JURA, pode fazer as seguintes ações:

Seleciona registros e apaga-los.

Revoke  Removendo as permissões / direitos usando o Interactive SQL

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 34


IBExpert

Neste exemplo estamos usando o IBExpert para mostrar que também é possível usar
as linhas de comando do Firebird para dar permissões para selecionar e apagar
para o usuário JURA, veja a linha abaixo foi digitada no editor de SQL.

Após clique em
Commit para gravar /
executar a linha.

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 35


Listando tabelas criadas e seus registros

Isql ( enter )

CONNECT banco_dados.fdb USER sysdba PASSWORD masterkey;

Show Tables; ( enter )

SELECT * FROM Tabela_Usuarios; ( enter )

Listando usuários

Adicionando Usuários

Gsec -user sysdba -password pwd ( enter )

Add Marcos -pw senha123 -fname Marcos -lname Santos ( adiciona usuários )

Display ( lista usuários )

Delete Marcos ( apaga Marcos )

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 36


Se precisar ajuda, ou querer saber mais parâmetros digite Help

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 37


.: Interbase – Roles – Triggers :.

Primeiramente criaremos o banco de dados e tabelas.

Usaremos o gerenciador de banco de dados IB Expert.

Vamos criar o banco de dados, clique em Database, clique em Create Database

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 38


Defina os valores dos campos de acordo com a tela abaixo:

Informe o caminho onde o banco de


dados será armazenado e digite o nome
do banco de dados banco_dados.gdb

Senha:
masterkey

Após clicar OK será aberta a tela abaixo:

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 39


Dê um clique duplo, será
aberta a tela abaixo:

Posicione o ponteiro do mouse


sobre a opção Domains, clique no
botão direito, clique em New
Domains, será aberta uma tela (
veja na página a seguir ), crie os
domínios de acordo como mostra
nesta tela.

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 40


Após ter criado os domínios,
clique no raio, será aberta
uma pequena tela
mostrando os domínios,
para grava-los basta clicar
no botão Commit.

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 41


Após criado os domínios, veja como ficou...

Posicione o ponteiro do
mouse sobre Tables,
clique no botão direito,
clique em New Table,
será aberta a tela ao
lado.

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 42


Definindo domínios para a tabela de Clientes.

Chave primária: Dê um
clique duplo onde o balão
esta apontando para definir
a chave primária, quando
surgir uma “chave” significa
que o índice foi definido.

Criaremos o campo código que gera numeração automática ( Auto increment )

Clique na tabela Clientes, clique na aba Autoincrement, defina o valor inicial para 1 ( Initial value
), clique OK e clique em Commit.
Role a barra de rolagem para
direita, até visualizar a coluna
AutoInc ( veja abaixo ), dê um
clique duplo no quadradinho, será
aberta uma tela ( veja abaixo ),
clique na aba Autoincrement,
clique no quadradinho Create
Generator, na opção Initial Value
defina 1

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 43


Cancele a linha do IF
colocando entre /* .... */

 Trigger: dispara / mover a cidade “Timbó”

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 44


 Trigger: dispara / gera a data e hora “Now”

 Exception: gerando uma exceção para mostrar mensagem de erro se o campo


Nome ficar em branco.

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 45


 Trigger: dispara / gera a exceção ( Exception ) gerada na página anterior.

 Trigger: dispara / gera salário de 1000.

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 46


 User Manager: Definindo usuários, senhas, roles, direitos...

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 47


Direitos do Administrador que terá na tabela de Clientes: incluir, apagar, alterar e
consultar registros.

Direitos da Secretária que terá na tabela de Clientes: consultar, apenas...

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 48


.: Delphi :.

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 49


Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 50
Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 51
Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 52
Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 53
Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 54
Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 55
Digite

:
:

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 56


Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 57
Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 58
Lendo arquivo Texto  Arquivo texto

Lendo informações de um arquivo texto e armazenando estes registros em uma


tabela. Algum dia poderá lhe ocorrer a situação de importar registros de um arquivo
texto para uma tabela e se isto ocorrer você deverá estar preparado.

1) Arquivo de texto de “tamanho fixo”

Abaixo explicarei o comprimento do registro:

A campo Código tem 6 caracteres ( letras ) , Nome tem 20, Data tem 10 e Salário
tem 4

Código
01 até 06

1 2 3 4 5 6 ,
O caracter 7 é a virgula e o
1 2 3 4 5 6 7 8 8 é um espaço em branco.

Posição inicial Posição final

Nome ( tamanho fixo do campo Nome é de 20 caracteres )

M I K E A L L A N P E L L I N ,

09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Posição inicial Posição final

Data ( 10/10/20001 ) é contado cada caracter ( 10 caracteres )

1 0 / 1 0 / 2 0 0 1 ,

31 32 33 34 35 36 37 38 39 40 41 42

Posição inicial

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 59


Salário
2 5 0 0

43 44 45 46

Programa que irá “importar” os registros de um arquivo texto (.txt) para a tabela (.db)

Digite as linhas de código no botão Importa registros . TXT para .DB no evento OnCLick

procedure TForm1.Bit_Txt_dbClick (Sender: TObject);


Var
Txt : TextFile;
Entrada : String;
Begin
AssignFile(Txt, 'Clientes_fixo.txt');
Reset(Txt); Posição final
While not Eoln(Txt) do Posição inicial Veja página
Begin Veja página anterior
ReadLn(Txt, Entrada);anterior
Table1.Insert;
Table1Codigo.Value := StrToInt (Copy(Entrada , 01 , 06));
Table1Nome.Value := Copy(Entrada , 09 , 28);
Table1Data.Value := StrToDate(Copy(Entrada , 31 , 10));
Table1Salario.Value := StrToCurr(Copy(Entrada , 43 , 04));
Table1.Post;
End;
CloseFile(Txt);
end;

2) Arquivo texto de “tamanho variável”

A mesma situação que já vimos criaremos para um arquivo texto de tamanho


variável.

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 60


procedure TForm1.Bit_txt_dbClick (Sender: TObject);
var
Txt : TextFile;
Entrada : AnsiString;
Part, Codigo, Nome, Data, Salario : String;
Len, Posicao, Ind : Integer; // indece do campo

begin
Assignfile(Txt,'clientes_varia.txt'); // aponta o arquivo texto que contém os registros
Reset(Txt);
Table1.Open; // abre a tabela
While not EOF(Txt) do begin // enquanto não for Final do arquivo
Readln(Txt,Entrada); // le linha
Len := Length(Entrada); // pega o tamanho da linha
Ind := 0; // inicia o indice dos campos com zero "0"
while Length(Entrada) > 0 do begin
Posicao := Pos(';' , Entrada); // pega a posica onde esta o ";"
if Posicao > 0 then begin // caso exita o ";"
Part := Copy(Entrada,1,Posicao-1); // pega o texto antes do ";"
Entrada := Copy(Entrada,Posicao+1,Len); // tira a parte da frente da string
end // if
else begin
Part := Entrada;
Entrada := '';
end; // else
// se for campo do tipo string tira as aspas duplas (")
if pos(' " ',Part) > 0 then Part := Copy(Part, 2, Length(Part) - 2);

// o Ind indica qual o campo q deve receber o conteúdo de part


Case Ind of
0 : Codigo := Part;
1 : Nome := part;
2 : Data := Part;
3 : Salario := Part;
end; // case
Inc(Ind);
end; // entrada > 0
Table1.Insert; // insere registro
Table1.FieldByName('Codigo').AsInteger := StrToInt(Codigo);
Table1.FieldByName('Nome').AsString := Nome;
Table1.FieldByName('Data').AsString := Data;
Table1.FieldByName('Salario').AsString := Salario;
Table1.Post; // grava registro
end; // while not EOF(txt);
CloseFile(Txt);
end;

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 61


Exportando registros para um arquivo Texto.

Este processo pode ser útil quando precisamos exportar registros de uma tabela para
outro banco tipo de banco de dados.

procedure TForm1.Bit_db_txtClick(Sender: TObject);


Var
F: TextFile;
begin
AssignFile(F,'Clientes_para_texto.txt');
Rewrite(F);
Table1.First;
While not Table1.Eof do
begin
Writeln(F,Table1.FieldByName('Codigo').AsString
+ ';' +
Table1.FieldByname('Nome').AsString
+ ';' +
Table1.FieldByname('Data').AsString
+ ';' +
Table1.FieldByname('Salario').AsString);
Table1.Next;
end;
CloseFile(F);
End;

ProgressBar  Aumentando % nos produtos

Exemplo usando o componente ProgressBar ( aba Win32 ). Será aumentado um


determinado percentual nos itens da tabela de produtos e a barra de progresso (
progressbar ) indicará quando todos os registros da tabela forem lidos.

Insira um componente
ProgressBar na aba Win32

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 62


procedure TForm2.But_AumentoClick(Sender: TObject);
Var
BookMark : TBookMark;
Total : Real;
Cont : Integer;

Begin
Cont := 0;
BookMark := Table1.GetBookmark;
Table1.DisableControls;
Total := 0;
Try
Table1.Active := True;
Table1.First;
With Form2.ProgressBar1 do
begin
Min := 1;
Max := Table1.RecordCount;
Position := 1;
end;
While not Table1.Eof do Begin
Table1.Edit;
Total := Round (Table1Preco.Value * StrToInt(Edit1.Text) / 100);
Table1Preco.Value := Total + Table1Preco.Value;
Table1.Next;
Form2.ProgressBar1.Position := Form2.ProgressBar1.Position + 1;
end;
Finally
Table1.GotoBookMark (BookMark);
Table1.FreeBookMark (BookMark);
Table1.EnableControls;
end;
ShowMessage('Aumento concluído');
Form2.ProgressBar1.Position := 1;
end;

Be Always Thankful

Everything comes and goes

Delphi 7 + Firebird - by Jurandir - Timbó – SC - Brasil - Sharing knowledge 63

Você também pode gostar