0% acharam este documento útil (0 voto)
49 visualizações12 páginas

Tutorial Lazarus: Usando SQLite3

Este documento oferece um tutorial sobre como conectar um programa Lazarus a um banco de dados SQLite e realizar operações básicas de CRUD (criar, ler, atualizar, deletar). Ele descreve como preparar um projeto Lazarus com um arquivo de banco de dados SQLite e os componentes necessários. Os componentes são conectados para permitir a seleção, inserção e visualização de dados do banco de dados. Exemplos de código são fornecidos para conectar-se ao banco de dados, executar declarações SELECT para recuperar dados e inserir novos registros diretamente usando declarações INSERT transacionais. O tutorial inclui capturas de tela e código-fonte para um aplicativo de exemplo.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
49 visualizações12 páginas

Tutorial Lazarus: Usando SQLite3

Este documento oferece um tutorial sobre como conectar um programa Lazarus a um banco de dados SQLite e realizar operações básicas de CRUD (criar, ler, atualizar, deletar). Ele descreve como preparar um projeto Lazarus com um arquivo de banco de dados SQLite e os componentes necessários. Os componentes são conectados para permitir a seleção, inserção e visualização de dados do banco de dados. Exemplos de código são fornecidos para conectar-se ao banco de dados, executar declarações SELECT para recuperar dados e inserir novos registros diretamente usando declarações INSERT transacionais. O tutorial inclui capturas de tela e código-fonte para um aplicativo de exemplo.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Lazarus e SQLite Página 1

Início- -A2 Bancos de Dados- -A2 Scripts- -A2 Problemas- -AS Hardware- -
Database Tutorials- -Lazarus Tutorials- -Lazarus- -Linux- -

Usando um banco de dados SQLite em um programa Lazarus

Version 1

Conteúdo

Introdução
Preparativos
Colocando os Componentes do Banco de Dados Lazarus no formulário
Conectando
SELECIONAR
INSERIR direto
INSERIR com TSQLQuery
Visualizando os dados
EXCLUIR
Apêndice A: Obtendo SQLite3
Apêndice B: Criando o banco de dados SQLite3
Apêndice C: Obtendo o arquivo [Link]
Captura de tela
Código Fonte

Topo
Introdução

Um programa Lazarus pode modificar, interrogar e visualizar o conteúdo de um existente


SQLite database.

Este tutorial é um guia passo a passo. No entanto, vale a pena olhar para o layout de
oFormulário e o código fonte agora. Eles estão no final deste documento.

Estou trabalhando com Lazarus [Link] beta no MS Windows.

Você se conectará usando componentes da palete de componentes SQLdb. Isso


vem com o Lazarus. Esta paleta possui um componente específico do SQLite3 que iremos
usar.

Topo
Preparativos

Crie uma pasta chamada SQLiteConnect. Para salvar um aplicativo Lazarus dentro da
pasta

Clique em Arquivo/Novo/Aplicativo e o familiar Form1 deve aparecer


Clique em Arquivo / Salvar Tudo e navegue até sua pasta 'SQLiteConnect'
Clique em Salvar (para a unidade) e Salvar (para o projeto).
Clique no ícone verde de executar e verifique se um formulário em branco aparece
Feche o formulário em branco.

Lázaro está pronto.


Você precisará do SQLite3 para criar o banco de dados. Veja o Apêndice A.
Lazarus e SQLite Página 2

Você precisa criar um banco de dados SQLite antes. Meu banco de dados se chama [Link].
Veja o Apêndice B.

[Link] deve estar na pasta SQLiteConnect com o seu projeto Lazarus. Copie e
cole [Link], se necessário

Você precisa do arquivo [Link]. É um download fácil. Veja o Apêndice C.

Tudo está agora no lugar.

Summary
Você precisa

Um projeto Lazarus na sua pasta de projeto chamado SQLiteConnect


Um banco de dados SQLite chamado [Link] - Estudante(StudentID, Primeiro, Segundo) está em
SQLiteConectar
O arquivo [Link] está em SQLiteConnect

Topo
Colocando os componentes Lazarus no formulário

No Lazarus, você precisa encontrar o painel de componentes SQLdb no final da linha.


de abas segurando componentes. À direita da paleta de componentes SQLdb você terá
encontre um componente chamado TSQLite3Connection.

Clique nele.
Clique em Form1 e arraste para abrir uma janela
Liberar e o componente aparecerá. TSQLite3Connection não é visível.
componente. Ele não aparece no Formulário quando o programa é executado. Nós
mudará suas propriedades dinamicamente à medida que o programa é executado.

O componente TSQLTransaction está no outro lado do componente SQLdb


paleta.

Coloque um componente TSQLTransaction abaixo do


Componente TSQLite3Connection no formulário usando o mesmo método que antes.
Este componente passa transações de banco de dados para o componente de Conexão.

O componente TSQLQuery está na paleta de componentes SQLdb perto do


Componente TSQLTransaction.

Coloque um TSQLQuery abaixo do componente TSQLTransaction. O TSQLQuery


o componente armazena os resultados de qualquer consulta que você tenha executado no
banco de dados. Ele também passa quaisquer alterações em seu conteúdo para o
TSQLite3Connectioncomponent.

The TDatasource component is in the Data Access component palette.

Coloque um componente TDatasource no formulário abaixo do TSQLQuery1


componente. Isso pega dados do componente TSQLQuery e os alimenta para o
componentes cientes de banco de dados que você em breve colocará em seu formulário.

O componente TDBGrid está na paleta de componentes de controles DB.

Arraste um componente DBGrid para o seu formulário abaixo do componente TDatasource.


Este é um componente visível, então você deve arrastá-lo para um tamanho razoável na sua
formulário. É um componente ciente de banco de dados e exibe o que quer que seja alimentado a partir de
a fonte de dados.

O componente TButton está na paleta de componentes Padrão.


Arraste um botão para o seu formulário na parte superior e redimensione-o.
Clique no botão uma vez.
Verifique se o Inspetor de Objetos mostra o botão e mude a 'legenda'
propriedade de 'Botão 1' para 'Conectar'
O botão deve agora ter a palavra 'Conectar' nele.
Clique no botão verde de executar. Um formulário apenas com seu botão deverá aparecer.
Feche o formulário.
Lazarus e SQLite Página 3

Resumo
Componentes no formulário

SQLite3Connection
SQLTransaction1
ConsultaSQL1
FonteDeDados1
DBGrid1
Button1 : caption = 'Connect'

Topo
Conectando

Agora você configura a conexão entre o programa e o banco de dados. Quando


você clica no botão 'Conectar' e, em seguida, uma conexão com [Link], (o banco de dados SQLite)
é feito e os dados do seu banco de dados aparecerão no DBgrid.

Aqui está como:

Clique duas vezes no botão. O editor de código aparece. No Button1click


procedure add the following code:

procedimento TForm1.Button1Click(Sender: TObject);


começar

[Link]:='[Link]';
[Link]:=SQLTransaction1;

[Link]:=SQLite3Connection;

[Link]:=ConexãoSQLite3;
[Link]:=SQLTransaction1;
[Link]:='SELECT * FROM Student';

[Link]:=SQLQuery1;
[Link]:=DataSource1;

fim;

Este código

Diz ao TSQLite3Connection o nome do banco de dados e a transação


Diz ao TSQLTransaction o nome da TSQLite3Connection
Diz ao TSQLQuery o nome do TSQLite3Connection e o
TSQLTransaction.
Diz à fonte de dados o nome do TSQLQuery
Diz ao DBGrid o nome da sua fonte de dados

Você pode ver que ele prepara uma rota do banco de dados para o DBGrid. Ele também
prepara (mas não executa) uma consulta para obter todos os dados do banco de dados
usando

SELECIONE * DO Estudante

Run the program.


Clique no botão

Não deve haver erros. Você deve ver o mesmo que antes.

Se o programa não funcionar ou houver um erro ao clicar no botão, então


você deve parar e verificar tudo. É inútil prosseguir uma vez que isso
o problema vai bloquear você toda vez.

Adicione um rótulo ao Form1. O componente TLabel está no componente 'Padrão'


paleta. Este rótulo mudará para mostrar que você está conectado quando se conectar.

Para fazer isso, adicione as 5 linhas que estão destacadas logo antes do final;

[Link]:=SQLQuery1;
[Link]:=DataSource1;
Lazarus e SQLite Página 4

[Link];
Se [Link] então
começar

[Link]:='connected -great';

fim;

fim;

Reexecutar o programa
Clique no botão
Conectado ao banco de dados SQLite - ótimo

Se o rótulo não mudar, você deve parar e verificar tudo. É


não faz sentido continuar já que não há conexão.
Em seguida, adicione a linha de código imediatamente após o código que você acabou de escrever e
pouco antes do final do procedimento:

[Link];

Esta única linha executa a consulta que foi preparada anteriormente. A tabela de
os resultados estão armazenados em SQLQuery1

Selecione * do Estudante

é passado para o TSQLite3Connection e depois para o banco de dados e o resultado é


passou de volta pela cadeia para o TSQLQuery, a fonte de dados e para o
DBGrid.

Execute o programa
Deve compilar sem erros
Clique no botão

The label should say 'Connected to SQLite database - great' The DBGrid should
preencha com os dados do seu banco de dados.

Se sim, então isso é ótimo. Você pode continuar. Se não, então você deve parar e
verifique tudo. É inútil prosseguir, pois não há conexão.

Resumo
Componentes

Rótulo1

Procedimentos

Botã[Link]
Inicializar componentes
Conectar
Consulta Aberta

Topo
Selecionando dados

Você pode interrogar os dados no banco de dados usando SELECT.

Adicione um novo botão (Botão2) e no Inspetor de Objetos mude o botão


legenda para 'SELECIONAR'. Também adicione uma caixa de edição (Edit2) ao formulário para que o usuário
pode inserir seu comando SELECT. Precisa ser bastante amplo.
Adicione o procedimento abaixo

procedimento TForm1.Button2Click(Sender: TObject);


começar
Lazarus e SQLite Página 5

[Link];
[Link]:=[Link];
[Link];

fim;

Fechar SQLQuery1 limpa o conteúdo em preparação para uma nova consulta. Então o
uma nova consulta é carregada. Então a nova consulta é executada e a tabela de resultados
disponível em SQLQuery1.

Execute o programa.
Clique no botão Conectar
Verifique se os dados aparecem no DBGrid
Digite SELECIONE Primeiro DE Aluno;
Clique no botão Selecionar

The list of first names only should appear in the DBGrid.


Summary
Componentes

Button2 : caption = 'SELECT'


CaixaDeEdição1

Procedures

Botã[Link]
Desativa o SQLQuery1
Copia a consulta da caixa de edição para SQLQuery
Executa a Consulta
Reativa SQLQuery

Topo
INSERINDO dados diretamente

Existem duas maneiras de inserir dados no banco de dados. Ambas funcionam e ambas são
bom. O primeiro método usa uma transação

Adicione um novo botão (Botão3) e no Inspetor de Objetos mude sua legenda para
‘Inserir’. Também adicione uma caixa de edição (Edit2) para que o usuário possa inserir seu INSERT
comando. Precisa ser bastante largo.

Clique duas vezes no botão e adicione este código-fonte:

procedimento TForm1.Button3Click(Sender: TObject);


começar

[Link];
[Link];
[Link]([Link]);
[Link];

fim;

A primeira linha completa quaisquer transações que possam estar pendentes de


procedimentos que ainda precisamos escrever. As próximas três linhas simplesmente executam o
transação. Este procedimento altera o banco de dados diretamente de acordo com o
Comando INSERT na caixa de edição.
Então, se você escrever

INSERIR NO Estudante VALORES (23, 'Fred', 'Jones');

então isso vai inserir Fred Jones como aluno 23 no banco de dados.

Execute o programa
Clique no botão de conectar
Adicione o acima na caixa de edição
Clique no botão Inserir.
Digite na caixa de edição selecionar - SELECT * FROM Student;
Clique no botão selecionar
Lazarus e SQLite Página 6

a nova entrada no DBGrid.


Feche o aplicativo.

Resumo
Componentes

Button3 : caption='INSERT'
Caixa de Edição 2

Procedimentos

Botã[Link]
Insere dados diretamente

Top
INSERTing data with TSQLQuery

Esta é a segunda maneira. Este método usa SQLQuery e é muito similar a


SELECIONAR

Clique duas vezes no botão3 e adicione este código fonte:

procedimento TForm1.Button3Click(Sender: TObject);


começar

//Not now needed - we will use SQLQuery1 instead //


[Link];
//[Link];
//[Link]([Link]);
//[Link];

[Link];
[Link]:=[Link];
[Link];

fim;

Usar // comenta uma linha no Lazarus. A técnica acima é uma maneira elegante de
tornando o código invisível para o compilador, mas mantendo-o para referência ou uso posterior.

Isto é muito semelhante ao código SELECT. A regra é -


se você está usando SELECT ou espera que dados sejam retornados para SQLQuery então
[Link] para executar a consulta.
se você estiver usando INSERT/DELETE/CREATE e esperar que NENHUM dado seja
retornou ao SQLQuery então use [Link] para executar o
consulta.
Agora, se você escrever

INSERIR NO Aluno VALORES (24, 'Stefani', 'Germanotta');

então isso irá cadastrar 'Stefani Germanotta' como estudante 24 no banco de dados.

Execute o programa
Clique no botão de conectar
Adicione o acima na caixa de edição INSERT
Clique no botão Inserir.
Insira na caixa de edição de seleção - SELECIONE * DE Estudante;
Clique no botão selecionar
Verifique se a nova entrada está no DBGrid.
Feche o aplicativo.

Resumo
Componentes

Button3 : caption='INSERT'
Caixa de Edição 2
Lazarus e SQLite Página 7

Procedimentos

Botã[Link]
Inserir dados com SQLQuery

Topo
Visualizando o banco de dados em uma caixa de memória

Você pode ver todo o banco de dados em uma memobox. A memobox não pode ser editada
e não muda a cada novo SELECT porque não é consciente do banco de dados
componente. Ainda é bom ver o conteúdo do banco de dados inicialmente (e é fácil!).

Add a new button (Button4) and in the Object Inspector change its caption to
‘Mostrar Banco de Dados Completo’. Adicione uma caixa de anotação do componente Padrão
paleta.

procedure TForm1.Button4Click(Sender: TObject);


iniciar

[Link]
[Link]:='Select * FROM Student';
[Link];
enquanto não [Link] faça
começar

[Link](
ID:
Primeiro nome:
' Second name: ' + [Link]('Second')
.AsString) ;
[Link];

fim;

fim;

As três primeiras linhas executam a consulta

SELECIONAR * DE Estudante;

então toda a tabela é copiada para SQLQuery1 automaticamente. Ela então aparece no
DBGrid porque DBGrid está ciente da base de dados. Isso é exatamente como antes.

O bloco while analisa a tabela do banco de dados linha por linha. Para cada linha, ele despeja
uma string na caixa de memória. A string é criada concatenando 4 menores
strings, duas das quais são rótulos simples e duas das quais são as entradas nisso
linha do banco de dados.

Execute o programa
Clique em Conectar
Clique em Mostrar Banco de Dados Inteiro

O banco de dados deve aparecer no DBGrid e na caixa de texto.

Resumo
Componentes

Button4 caption='View the Whole Database'


Memobox1

Procedimentos

Botã[Link]
Executa SQLQuery1
Itera pela tabela do banco de dados em SQLQuery1
Cria uma string formatada com o conteúdo de cada linha
Coloca a string na caixa de anotações.
Lazarus e SQLite Página 8

Topo
DELETAR dados

O método para deletar dados é fácil. Lembre-se de que o código para INSERIR não é.
apenas para INSERIR, mas para qualquer comando SQL que não retorne um resultado de
o banco de dados. DELETE é apenas um comando desse tipo. Portanto, o código para DELETE é
idêntico ao código para INSERT. Portanto, você pode inserir um comando DELETE em
a caixa de edição INSERT e funcionará. Lembre-se de então executar 'SELECT * FROM
Estudante para ver o efeito.

O comando SQL

DELETAR FROM Aluno ONDE StudentID=23

will delete student 23 Fred Jones from the database

Para testar isso, escreva

Execute o programa
Clique no botão de conectar
Adicione o acima na caixa de edição Inserir
Clique no botão Inserir.
Digite na caixa de edição selecionar - SELECIONAR * DO Estudante
Clique no botão de selecionar
Check the entry has gone from the DBGrid.
Fechar o Formulário.

Para obter um botão 'bom' de DELETE, você teria primeiro o código para INSERT e
então tenha o código para abrir a consulta 'SELECT * FROM Student' em seguida.
Então o resultado aparecerá instantaneamente.

Topo
Apêndice A
Obtendo [Link]

O programa pode ser obtido no site do SQLite. Ele pode ser instalado e
executar em um pen drive (unidade flash).

Topo
Apêndice B
Criando um banco de dados SQLite simples chamado [Link]

Você precisa criar um banco de dados SQLite. Meu banco de dados se chama [Link], e ele tem
one table called Student, with three columns - StudentID(number), First(text)
e Segundo(texto). Existem três linhas na tabela.
Para produzir o banco de dados

Abra um editor de texto como 'Bloco de Notas'


Salve um arquivo de texto com o nome [Link]
Copie e cole o SQL abaixo nele.

-- SQL para a tabela Estudante

CRIE TABELA Aluno(


StudentID INTEGER PRIMARY KEY NOT NULL,
Primeiro VARCHAR(20)
Segundo VARHAR(20));

-- Alguns Valores de Estudantes

INSERIR NO Estudante VALORES (1, 'David', 'Beckham');


INSERIR NO Estudante VALORES (2, 'William', 'Shakespeare');
Lazarus e SQLite Página 9

INSERIR EM Estudante VALORES (3, 'Reginald', 'Dwight');

-- Fim do SQL

Então -

Salve o arquivo na mesma pasta que o [Link]


Clique duas vezes em [Link]
Digite .ler [Link] (apenas copie e cole este texto)
Digite SELECT * FROM Student (no prompt do SQLite)

Você deve ver os três registros.

Digite .backup [Link]

A tabela de Alunos deveria ter sido importada junto com os três registros.
Verifique se eles estão lá navegando por eles.

Topo
Apêndice B
Obtendo [Link]

Este arquivo pode ser obtido no site do SQLite.

Você baixa um instalador para o arquivo. O instalador deve ser executado. Ele irá
crie uma pasta chamada [Link] e isso contém o arquivo [Link]. O arquivo
precisa ir para a sua pasta SQLite3Connect com o seu projeto

O link entre Lazarus e [Link] está feito.

Topo
Captura de tela do formulário

Topo
Código Fonte
unidade Unidade1;
Lazarus e SQLite Página 10

{$mode objfpc}{$H+}

interface

usos

Classes, SysUtils, SQLite3Conn, sqldb, db, FileUtil, LResources,


Formulários, Controles,
Gráficos, Diálogos, DBGrids, StdCtrls;

tipo

{ TForm1 }
TForm1 = class(TForm)

Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Datasource1: TDatasource;
DBGrid1: TDBGrid;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Memo1: TMemo;
SQLite3Connection: TSQLite3Connection;
SQLQuery1: TSQLQuery;
SQLTransaction1: TSQLTransaction;
procedimento Button1Click(Sender: TObject);
procedimento Button2Click(Enviar: TObject);
procedimento Button3Click(Sender: TObject);
procedimento Button4Click(Emitter: TObject);

privado
{ private declarations }
público
{ public declarations }
fim;

var

Form1: TForm1;

implementação

{ TForm1 }

procedimento TForm1.Button1Click(Sender: TObject);


começar

[Link]:='[Link]';
[Link]:=SQLTransaction1;

[Link] := SQLite3Connection;

[Link]:=SQLite3Connection;
[Link]:=SQLTransaction1;
[Link]:='SELECT * FROM Student';

[Link]:=SQLQuery1;
[Link]:=DataSource1;

[Link];
Se [Link] então
begin

[Link]:='connected -great';
Lazarus e SQLite Página 11

fim;
[Link];

end;

procedimento TForm1.Button2Click(Sender: TObject);


começar

[Link];
[Link]:=[Link];
[Link];

fim;

procedimento [Link]ão3Clique(Emissor: TObject);


começar
//Não é necessário agora - usaremos o SQLQuery1 em vez disso //
[Link];
//[Link]ção;
//[Link]([Link]);
//[Link];

[Link];
[Link]:=[Link];
[Link];

fim;

procedimento TForm1.Button4Click(Sender: TObject);


começar

[Link]
[Link]:='Select * FROM Student';
[Link];
enquanto não [Link] faça
começar

[Link](
ID: ' + [Link]('StudentID').AsString +
' Primeiro nome: ' + [Link]('First').AsString +
' Segundo nome: ' + [Link]('Segundo')
.AsString) ;
[Link]óximo;

fim;

fim;

inicialização
{$I [Link]}

fim.
Lazarus e SQLite Página 12

Você também pode gostar