Lazarus - Acessando banco de dados com SQLdb - Parte I
Lazarus - Acessando banco de dados com SQLdb - Parte II
Hoje estamos com a versão 0.9.31. Neste post iremos apresentar algumas mudanças para melhor na utilização desses componentes.
Referências aos campos de uma tabela - criação de TFields
Para criar os TFields ainda é necessário que a TSQLQuery esteja ativa. Dê um duplo clique na TSQLQuery e você verá uma janela como esta:
Esta janela oferece uma barra de ferramentas bastante intuitiva. O botão adicionar irá abrir uma nova janela onde você poderá selecionar os campos da tabela que se deseja adicionar. Após selecionar os campos pressione o botão Create. O botão novo campo permite criar um campo de dado, calculado ou lookup. O uso desse botão irá abrir a seguinte janela:
Aqui você escolhe o tipo do campo em Field Type. Em Field properties podemos definir os valores das propriedades do campo. Depois confirme tudo pressionando Ok. Esteja sempre atento que as tabelas envolvidas na criação dos campos devem estar abertas.
Note também que esse procedimento irá criar variáveis do tipo TField, que podem ser usadas no código do nosso programa. Essas variáveis são criadas abaixo do Data Module conforme podemos ver na figura:
A partir disso, podemos acessar os campos da tabela usando essas variáveis, lembrando que elas são objetos. Veja alguns exemplos de utilização desses objetos:
queCidadeidcidade.Value; // lê o valor do campo, inteiro nesse caso
queCidadeidcidade.AsString; // lê o valor do campo convertido para string
Criação de TFields não é uma novidade. Isso já existia nas versões anteriores. Apenas ficou um pouco mais intuitivo e fácil manipular a criação desses objetos.
Referência aos parâmetros de um comando SQL
Como sabemos, é possível escrever comandos SQL utilizando parâmetros. Um exemplo é mostrado no código abaixo:
procedure TfrmConsCidade.btnPesquisarClick(Sender: TObject); begin with dmDados.queConsCidade do begin Close; SQL.Clear; if (rgCampo.ItemIndex = 0) then begin // pidcidade é um parâmetro SQL.Add('select * from cidade where idcidade = :pidcidade'); // atribuição do valor do parâmetro ParamByName('pidcidade').Value := StrToInt(edValor.Text); //Params[0].Value := StrToInt(edValor.Text); end else begin SQL.Add('select * from cidade where nome like :pnome'); ParamByName('pnome').Value := edValor.Text + '%'; end; Open; end; end;
Em versões anteriores não havia o método ParamByName(). O acesso a um parâmetro era feito usando Params[]. Isso é mostrado na linha de código 13, que aparece comentada. O uso de ParamByName() torna o código mais legível.
O SQLdb melhorou muito, mas ainda aconselhamos o uso de ZeosLib.
8 comentários:
Bom dia Professor,
no Delphi existe a opção de arrastar o campo do edit fields para o formulário, não consegui fazer isso na versão 9.30, agora será possivel?
obrigado
Bom dia
Ainda não existe essa funcionalidade. Nem mesma na versão 0.9.31
Excelente artigo! Parabéns!
Valeu Paulo
Obrigado pelo comentário.
Boa tarde professor,
O Zeos Acess nao suporta fazer conexao com o SQLite ?
A resposta é sim. Na propriedade Protocol de ZConnection coloque sqlite-3 e informe o caminho e o nome do arquivo do banco na propriedade Database.
Prezado Professor Carlos,
Gostaria de saber se ainda serão realizadas atualizações gerais sobre Lazarus, sou estudante de TI e me interessei muito por lazarus, conforme indicado adquiri o Livro da AgBook - Desenvolvendo Aplicativos com Lazarus, muito interessante, porém creio que tenhas muito mais a somar no aprendizado dinâmico e compartilhado em seu Blog, meu parabéns pela iniciativa e no aguardo de novidades e mais e mais conhecimento.
Atenciosamente,
Humberto Santos
Sim Humberto, além do último release no sourceforge, aqui http://www.hu.freepascal.org/lazarus/ você tem snapshots diários que você pode experimentar.
Postar um comentário