Tutorial Lazarus: Usando SQLite3
Tutorial Lazarus: Usando SQLite3
Início- -A2 Bancos de Dados- -A2 Scripts- -A2 Problemas- -AS Hardware- -
Database Tutorials- -Lazarus Tutorials- -Lazarus- -Linux- -
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
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.
Topo
Preparativos
Crie uma pasta chamada SQLiteConnect. Para salvar um aplicativo Lazarus dentro da
pasta
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
Summary
Você precisa
Topo
Colocando os componentes Lazarus no formulário
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.
Resumo
Componentes no formulário
SQLite3Connection
SQLTransaction1
ConsultaSQL1
FonteDeDados1
DBGrid1
Button1 : caption = 'Connect'
Topo
Conectando
[Link]:='[Link]';
[Link]:=SQLTransaction1;
[Link]:=SQLite3Connection;
[Link]:=ConexãoSQLite3;
[Link]:=SQLTransaction1;
[Link]:='SELECT * FROM Student';
[Link]:=SQLQuery1;
[Link]:=DataSource1;
fim;
Este código
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
Não deve haver erros. Você deve ver o mesmo que antes.
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
[Link];
Esta única linha executa a consulta que foi preparada anteriormente. A tabela de
os resultados estão armazenados em SQLQuery1
Selecione * do Estudante
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
[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
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.
[Link];
[Link];
[Link]([Link]);
[Link];
fim;
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
Resumo
Componentes
Button3 : caption='INSERT'
Caixa de Edição 2
Procedimentos
Botã[Link]
Insere dados diretamente
Top
INSERTing data with TSQLQuery
[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.
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.
[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;
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
Resumo
Componentes
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
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
-- Fim do SQL
Então -
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]
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
Topo
Captura de tela do formulário
Topo
Código Fonte
unidade Unidade1;
Lazarus e SQLite Página 10
{$mode objfpc}{$H+}
interface
usos
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 }
[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;
[Link];
[Link]:=[Link];
[Link];
fim;
[Link];
[Link]:=[Link];
[Link];
fim;
[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