Você está na página 1de 12

26/04/13 Lazarus - Acessando banco de dados com SQLdb - Parte I | Professor Carlos Arajo

professorcarlos.blogspot.com.br/2010/02/lazarus-acessando-banco-de-dados-com.html 1/12
Incio Sobre
Curtir 2
TERA-FEIRA, 23 DE FEVEREIRO DE 2010
Lazarus - Acessando banco de dados com SQLdb
- Parte I
Para fazer nossa primeira aplicao usando banco de dados
no Lazarus vamos usar o SQLite e o conjunto de
componentes nativo SQLdb. Inicialmente vamos apresentar
passo como essa aplicao foi criada. Essa foi a maneira
que eu fiz, e eu agradeo sugestes e questionamentos que pessoas que
j passaram por essa experincia. Depois irei fazer algumas consideraes
sobre o uso do SQLdb.
SQLite
SQLite uma biblioteca que implementa um motor de banco de dados
SQL. livre para qualquer finalidade, seja uso particular ou comercial. L e
escreve em um nico arquivo que pode ter alm de tabelas, ndices,
gatilhos e vises. Executa em vrias plataformas e indicado para
aplicaes embarcadas. Maiores detalhes podem ser encontrados no site
oficial. Para us-lo, baixe-o do site e faa a instalao adequada para o seu
sistema operacional. No Windows isso muito simples, apenas copie
sqlite3.dll para o system32 da pasta do sistema operacional.
Existe uma ferramenta de linha de comando chamada sqlite3 que podemos
usar para criar o banco de dados e as tabelas. Pode ser baixada no prprio
site oficial do SQLite. Depois de instaladas a dll e a ferramenta de criao
do banco execute-a digitando o seguinte comando no console do sistema
operacional:
sqlite3 banco.db
Se o banco j existir ele ser aberto para operaes como criar/alterar
tabelas e consultar/inserir/atualizar/deletar dados nas tabelas existentes.
Depois disso digite os comandos SQL para a criao de duas tabelas
necessrias para nossa aplicao:
create table cidade (id_cidade integer primary key,
nome varchar(30));
create table cliente (id_cliente integer primary key,
nome varchar(40), endereco varchar(40), id_cidade
integer, telefone varchar(14), tipo char(1), status
boolean);
Feito isso digite .quit para sair e voltemos ao nosso IDE.
SQLdb
Esse o pacote para acessar bancos de dados no Lazarus. Voc o
encontra na aba SQLdb. Algumas informaes esto em
http://wiki.freepascal.org/SQLdb_Package. Com esse pacote podemos
conectar ao PostgreSQL, Oracle, MySQL, Firebird, SQLite e ODBC. Para
cada um desses existe um componente TXXXConnection. Para conectar ao
Firebird, por exemplo, existe o componente TIBConnection. Para executar
as operaes sobre tabelas temos o TSQLQuery e o TSQLTransaction. A
seguir iremos criar a aplicao e mostraremos como utilizar esses
componentes.
O blog nas redes sociais
Siga-nos se julgar importante
Blog do professor Carlos
Curtir 86
Postagens mais populares
Lazarus - Acessando banco de dados com
SQLdb - Parte I
Lazarus - Criando uma aplicao para
WinCE
Lazarus - Criando relatrios com
FortesReport (Parte I)
Lazarus - Conectando PostgreSQL com
ZeosLib
Tipos de dados no SQLite
Lazarus - Criando menus
Lazarus - Conectando MySQL com SQLdb
ou ZeosLib
Lazarus - Acessando banco de dados com
SQLdb - Parte II
Lazarus - Conectando Firebird com SQLdb
ou ZeosLib
Lazarus - Emulador WinCE/Windows
Mobile
Pesquisar no blog
Pesquisar
Mostrar posts sobre
componentes lazarus (6)
Firebird (4)
Java (3) lazreport (3)
SQLdb (6) SQLite (4) WinCE (3)
ZeosLib
(10)
aplicao embarcada (1) arquivos texto (1)
Data Module
(2) DOM (2) emulador WinCE (1)
fortesreport (2) JVM (1)
Linux (1) mestre detalhe (2) MSAccess (1) MySQL
(1) ODBC (1) Oracle (1) PostgreSQL (2) SCJP (1)
splash (1)
Windows Mobile (2) xml (2)
26/04/13 Lazarus - Acessando banco de dados com SQLdb - Parte I | Professor Carlos Arajo
professorcarlos.blogspot.com.br/2010/02/lazarus-acessando-banco-de-dados-com.html 2/12
A aplicao exemplo
Vamos ento iniciar o Lazarus e criar uma nova aplicao. No primeiro form
crie um menu com a seguinte estrutura. Se for necessrio leia o artigo
sobre criao de menus em
http://professorcarlos.blogspot.com/2010/01/lazarus-criando-
menus.html:
Arquivo
Sair
Cadastros
Cidade
Cliente
Consultas
Cidade
Cliente
Mude a propriedade Name desse form para frmPrincipal. Mande salvar
tudo. Escolha u_principal para nome da unit e Clientes para nome do
projeto.
fortemente aconselhado que os componentes de conexo e acesso ao
banco de dados estejam agrupados em um repositrio denominado
DataModule. Para criar um DataModule no Lazarus selecione o menu
Arquivo -> Novo. Selecione Data Module abaixo do grupo Mdulo e
pressione o boto OK. Mude a propriedade Name para dmDados, mande
salvar e d o nome u_dmdados para esta unit.
Agora selecione a aba de componentes SQLdb e coloque um
TSQLite3Connection no DataModule. Na propriedade DatabaseName
informe o nome do arquivo do banco de dados com o caminho. Mude a
propriedade Name para dbCliente. Neste momento podemos mudar a
propriedade Connected para True. Se nenhum erro acontecer o
componente de conexo est corretamente configurado. Volte a
propriedade Connected para False. Coloque um componente
TSQLTransaction no DataModule. Na propriedade Database selecione
dbCliente e em Name digite trGeral. Retorne ao SQLite3Connection e
selecione trGeral na propriedade Transaction. TSQLTransaction o
componente que controla as transaes no banco de dados. Em um banco
de dados as operaes ocorrem no contexto de uma transao. Uma
transao finaliza com sucesso atravs de um COMMIT e ROLLBACK
desfaz as operaes realizadas anteriormente.
Selecione um TSQLQuery e coloque no DataModule. Na propriedade
Database selecione dbCliente. Na propriedade Name digite queCidade e
em SQL informe select * from cidade. Na propriedade Transaction defina
trGeral. Agora localize a aba Data Access. Selecione um componente
TDataSource e coloque no DataModule. Defina Name como dsCidade e
em DataSet selecione queCidade. Resumindo, fizemos a conexo com o
banco de dados usando SQLite3Connection, em seguida definimos um
componente para controlar as transaes, definimos uma conexo com
uma tabela do banco usando TSQLQuery, e criamos uma ligao entre a
tabela e os componentes que tero a funo de ler os campos dessa
tabela usando TDataSource. Esse um procedimento repetitivo para
novas tabelas nessa aplicao e mesmo quando usarmos outros conjuntos
de componentes. O DataModule ter essa aparncia, j com os
componentes para acesso tabela Cliente.
RSS
Inscreva-se
Translate this page
Translator Widget by Dicas Blogger
Arquivo do blog
2011 (9)
2010 (36)
Outubro (1)
Setembro (1)
Agosto (1)
Julho (1)
Junho (3)
Maio (6)
Abril (7)
Maro (7)
Fevereiro (4)
Lazarus - Acessando banco de dados
com SQLdb - Par...
Lazarus - Acessando banco de dados
com SQLdb - Par...
Aventurando-se no Linux - VirtualBox
Lazarus - Barras de ferramentas e de
status
Janeiro (5)
2009 (14)
2008 (12)
2007 (3)
2006 (3)
Sites Parceiros




Eu Linko!
26/04/13 Lazarus - Acessando banco de dados com SQLdb - Parte I | Professor Carlos Arajo
professorcarlos.blogspot.com.br/2010/02/lazarus-acessando-banco-de-dados-com.html 3/12
Repita os mesmos passos para a tabela Cliente, inserindo mais um
TSQLQuery e um TDataSource. Selecione o form principal e, no editor de
cdigo, digite abaixo de Implementation:
uses u_dmdados;
Localize o evento OnShow na aba Eventos do Inspetor de objetos. D
um duplo clique direita e digite:
dmDados.dbCliente.Open;
Assim, sempre que o programa for iniciado a conexo com o banco de
dados ser aberta.
Form de Cidade
Insira um novo form na aplicao. Ele ser desenhado para fazer as
atualizaes na tabela Cidade. Defina o Name do form como frmCidade e o
Caption como Cidades. Salve a unit e defina seu nome como u_cidade. O
desenho deste form deve ter a seguinte aparncia.

Antes de comear a desenhar a janela, acesse o cdigo da unit e insira o
seguinte cdigo abaixo de Implementation:
uses u_dmdados;
Isso permite que esta unit acesse os objetos do DataModule.
Pegue um componente TPanel na aba Standard e coloque no form.
Defina a propriedade Align como alTop. Exclua o contedo de Caption. As
propriedades BevelInner e BevelOuter so usadas para definir contornos
para o painel. Deixe, por exemplo, como bvLowered e bvRaised
respectivamente.
Agora selecione um TDBNavigator na aba Data Controls e o coloque no
form sobre o painel. Na propriedade DataSource do navegador selecione
Livro

Organizado pelo professor Carlos
26/04/13 Lazarus - Acessando banco de dados com SQLdb - Parte I | Professor Carlos Arajo
professorcarlos.blogspot.com.br/2010/02/lazarus-acessando-banco-de-dados-com.html 4/12
dsCidade.
Dessa mesma aba selecione TDBEdit e coloque dois deles no form. No
primeiro defina Name como edIdCidade, em DataSource selecione
dsCidade e em DataField digite ID_CIDADE. Essa ltima atribuio ir
provocar um erro, mas isso no vai interferir no resultado. No segundo
TDBEdit defina Name como edNome, DataSource como dsCidade e em
DataField digite NOME. Selecione TLabel na aba Standard e coloque um
esquerda de cada TDBEdit para identific-los. Defina suas propriedades
Caption como ID e Nome, respectivamente. Para finalizar o desenho
coloque um TSpeedButton da aba Additional sobre o painel. Defina
Name como btnSair e escolha um cone apropriado para ele usando a
propriedade Glyph. No evento OnClick deste boto digite:
Close;
necessrio programar a abertura e o fechamento da Query no form. A
abertura ser programada no evento OnShow e o fechamento ser
programado no evento OnClose, ambos de form. Com o form selecionado
selecione da aba Eventos no Inspetor de Objetos. Localize o evento
OnShow, d um duplo clique na caixa direita e digite o seguinte:
dmDados.queCidade.Open;
Faa o mesmo para o evento OnClose e digite:
dmDados.queCidade.Close;
Agora precisamos programar a chamada do form frmCidade a partir no form
principal. Selecione o form principal, mude para o editor de cdigo e digite
abaixo de Implementation:
uses u_cidade;
Volte para o form e clique no menu Cadastros -> Cidades. No editor de
cdigo digite:
frmCidade.Show;
Se voc compilar e executar o programa verificar que no consegue ainda
inserir dados na tabela Cidade. Todos os dados que so inseridos ficam em
cache. necessrio enviar os dados para o banco e finalizar a transao.
Isso ser feito no evento AfterPost da Query. Este evento ocorre aps um
registro ser gravado no banco. Selecione o DataModule e em seguida
queCidade. Clique na aba Eventos do Inspetor de Objetos. Localize o
evento AfterPost, d um duplo clique direita dele e digite o seguinte:
Vamos esclarecer o cdigo:
linha 42 - declara um TBookMark, que um ponteiro para um registro.
linha 45 - try, juntamente com except consiste em um tratamento de
exceo. Se algo falhar no bloco try, o cdigo em except executado.
linha 46 - guarda o ponteiro do registro atual.
linha 47 - envia para o banco de dados o que estiver no cache.
linha 48 - verifica se existe uma transao ativa.
linha 50 - executa um COMMIT no banco, mas mantm a transao aberta.
linha 51 - desvia para o ponteiro salvo na linha 46.
26/04/13 Lazarus - Acessando banco de dados com SQLdb - Parte I | Professor Carlos Arajo
professorcarlos.blogspot.com.br/2010/02/lazarus-acessando-banco-de-dados-com.html 5/12
Postado por Professor Carl os s 23:28
linha 54 - executa um ROLLBACK se algo sair errado no bloco try.
Localize o evento AfterDelete da Query. Clique no boto da caixa direita
para selecionar um mtodo existente. Selecione queCidadeAfterPost.
Assim reaproveitamos o cdigo que executa a mesma operao necessria
no AfterDelete.
Compile e execute o programa. No post seguinte daremos seguimento ao
desenvolvimento dessa aplicao.
Marcadores: Data Module, SQLdb, SQLite
Posts Rel aci onados
Lazarus - Conectando Oracle com SQLdb ou ZeosLib
Lazarus - Conectando MySQL com SQLdb ou ZeosLib
Lazarus - Conectando MSAccess com ODBC
Tipos de dados no SQLite
Lazarus - Emulador WinCE/Windows Mobile
Lazarus - Acessando banco de dados com SQLdb - Parte II
Lazarus - Acessando banco de dados com SQLdb - Parte I
Lazarus - Acessando banco de dados com SQLdb - Parte III
39 comentrios:
Lucia Terra disse...
Deparei com seu post "Lazarus - Acessando banco de dados
com SQLdb Segui todos os passos deste post e consegui
compilar e executar o programa. Fiz esta mesma experiencia
s ao invs de conectar ao SQlite, usei o Mysql, que
tambem funcionou perfeitamente.
Porem estou tendo um problema: o dbnavigator aparece
destivado. Sendo assim no consigo inserir nenhum dado no
banco. Onde ser que estou errando?
11:47 AM
BkBrasil disse...
Verifique se o DataSource do dbNavigator est vazio. Se
estiver, escolha a tabela na qual ele ir operar.
12:11 PM
Annimo disse...
Ambiente WinXP, Postgres 8.3, MySQl 5, Lazarus 0.9.28.2
Usando Zeos no conseguir conectar com nenhum banco.
Nos dois d erro procurando por DLL, No Mysql pergunta por
libmysql51, libmysql50, libmysql, j no PG procura por uma
SSLeay32.dll.
9:37 AM
Professor Carlos disse...
No post http://professorcarlos.blogspot.com/2010/05/lazarus-
conectando-mysql.html tem um link pra baixar as dlls
necessrias pro MySql. Para o PG copie a dll que est na
pasta bin de instalao do PG para o diretrio system.
Qualquer dvida me escreva.
2:58 PM
Roberto Dutra disse...
Muito bom seus posts. J usava o delphi mas agora estou
ingressando no lazarus. Estou tendo problemas em
26/04/13 Lazarus - Acessando banco de dados com SQLdb - Parte I | Professor Carlos Arajo
professorcarlos.blogspot.com.br/2010/02/lazarus-acessando-banco-de-dados-com.html 6/12
compreender. No sei qual o ambiente para criar o banco de
dados. Ento criei um pelo Database desktop do delphi (*.db
tipo paradox), linkei na aplicao, mas no momento de ativar
o qcidade aparede "file is encrypted or is not database".
Onde crio o banco de dados com suas tabelas? Somente ler
extenso db? E .mdb como me conecto?
Agradeo muito.
2:26 PM
Professor Carlos disse...
Roberto
Voc est tentanto abrir uma tabela Paradox. O Lazarus s
tem componentes para abrir essas tabelas para leitura. Mas
voc pode usar SQLite, Firebird, PostgreSQL, MS SQL,
Oracle e at o Access. Para o Firebird existe a ferramenta
IBExpert, para o PostgreSQL existe o pgAdmin, e assim por
diante. Mas voc precisa ter o SGBD instalado. Acesse o
site do SQLite e l pode baixar a dll e uma ferramenta para
criar o banco e as tabelas. Para ver como conectar ao
Access leia o post
http://professorcarlos.blogspot.com/2010/03/lazarus-
conectando-msaccess-com-odbc.html
7:13 PM
Pucka disse...
Caro professor Carlos, obrigado por nos brindar com dicas
muito interessantes e importantes. Desde h algum tempo
estava procura de um BD leve e finalmente o encontrei no
SQLite. Estou fazendo alguns testes juntamente com o
Lazarus e estou muito esperanoso de breve poder domin-
los razoavelmente. No momento, deparei-me com um
problema crucial na comparao trivial entre strings. Imagine
que um campo Edit tenha sido preenchido com um campo
da tabela e, em seguida, faa uma comparao entre estes
dois campos, ambos do tipo string. O resultado esperado,
seria obviamente a igualdade de ambos (pois no sofreram
nenhuma alterao). Entretanto, o resultado da comparao
indica que os dois campos so diferentes. Ser que o senhor
poderia me dar uma dica de como devo proceder para obter o
resultado esperado ? Detalhe: isso somente ocorre em
campos onde contenha acentos, cedilhas ou algum outro
sinal diferente de letras e/ou algarismos.
S fui detectar isso, aps vrios testes frustrados de SQL
que no executava o esperado.
Desde j agradeo a ateno.
4:01 PM
Professor Carlos disse...
Mude a propriedade CharSet do SQLite3Connection para
utf8. Me d um retorno se funcionou.
8:14 PM
Pucka disse...
Ol professor Carlos,
Infelizmente o SQLiteConnection no consigo utilizar pois
faltam os outros componentes para gerenciar a tabela e o
SQL. No consegui encontr-los na Internet e, acreditando
que o que esto no Lazarus fossem funcionais, (imaginei que
26/04/13 Lazarus - Acessando banco de dados com SQLdb - Parte I | Professor Carlos Arajo
professorcarlos.blogspot.com.br/2010/02/lazarus-acessando-banco-de-dados-com.html 7/12
fossem
como o Lazreport e me dei mal: compilei os lpks e, a partir
de ento, no consegui mais rodar o Lazarus.
No teve outro jeito. Tive que becapear o HD e format-lo,
reinstalar o Windows (XP SP-3) e em
seguida reinstalar o Lazarus.
Depois deste susto, resolvi utilizar o ZEOS. Ser que o
senhor poderia me ajudar para configurar o ZEOS para esta
tarefa ?
Grato pela ateno,
Pucka
1:17 PM
Professor Carlos disse...
Veja se consegue fazer seguindo esses passos:
http://professorcarlos.blogspot.com/2010/03/lazarus-
conectando-postgresql-com.html
1:44 PM
Artur disse...
Ol, professor!
No consigo encontrar o TSQLite3Conection na aba SQLdb.
O que devo fazer?
9:25 AM
Professor Carlos disse...
Oi Artur
Na aba SQLdb, o ltimo componente o TIBConnection
(para Firebird), o penltimo o TSQLite3Connection. Ok?
Se no estiver aparecendo voc deve ter um problema na
instalao do Lazarus. Se voc achar que tem mesmo um
problema, use a Clean Up + Build All no menu Tools para
recompilar o Lazarus.
9:39 AM
Annimo disse...
Segui os passos e quando tento ativar a tabela no
DataModule1/SQLite3Connection1 esta dando o seguinte
erro
[Window Title]
Erro
[Content]
Can not load SQLite client library "sqlite3.dll". Check your
installation.
[OK]
mas a dll ja esta na pasta do sql e na pasta do system 32.
Windows 7 64x
12:51 PM
Professor Carlos disse...
Copie a dll para a pasta da sua aplicao
26/04/13 Lazarus - Acessando banco de dados com SQLdb - Parte I | Professor Carlos Arajo
professorcarlos.blogspot.com.br/2010/02/lazarus-acessando-banco-de-dados-com.html 8/12
4:41 PM
Yindi disse...
Ol Professor,
Gostei muito do seu tutorial.
Estou tentando conectar o Lazarus ao Mysql5.1 a versao
mais nova, s quando tento conectar e diz que falta uma
biblioteca chamada libmysqlclient.so.15.0.0 (uso o linux
ubuntu) eu baixei essa biblioteca e coloquei na pasta s que
mesmo assim o lazarus nao consegue conectar. Eu nao sei
mais o que eu fao, t dificil de lidar com o Mysql. To at
pensando em mudar de banco de dados.
1:46 PM
Professor Carlos disse...
Este comentrio foi removido pelo autor.
4:55 PM
Professor Carlos disse...
Tente copiar a biblioteca para a pasta /lib ou /usr/lib
5:01 PM
Professor Carlos disse...
Yindi
Eu baixei esse deb aqui http://automation.binarysage.net/?
dl_id=6 e instalei com dpkg -i
5:32 PM
Yindi disse...
Ol Professor,
Copiar a dll para a pasta da minha aplicao resolveu meu
problema no windows. Obrigada pela ajuda.
O Sr. poderia dar uma dica de como eu uso as TBEdit para
armazenar os dados que o usuario inserir neste banco do
SQLite?
8:49 AM
Professor Carlos disse...
Oi Yindi
Voc se refere ao TEdit ou ao TDBEdit? Se for TDBEdit este
mesmo post no esclarece sua dvida? Se for TEdit voc
pode usar um SQL parametrizado e depois chamar
ExecSQL. Por exemplo, se neste post os TDBEdits fossem
substituidos por TEdit, ento voc poderia usar um cdigo
assim:
queCidade.SQL.Add('insert into cidade values (id_cidade =
:pId, nome = :pNome)');
queCidade.ParamByName('pId').Value := StrToInt(Edit1.Text);
queCidade.ParamByName('pNome').Value := Edit2.Text;
queCidade.ExecSQL;
9:51 AM
Yindi disse...
Bom dia professor,
Eu me referia mesmo a uma TDBEdit. Neste caso, para
insero de dados no banco de dados seria mesmo mais
26/04/13 Lazarus - Acessando banco de dados com SQLdb - Parte I | Professor Carlos Arajo
professorcarlos.blogspot.com.br/2010/02/lazarus-acessando-banco-de-dados-com.html 9/12
aconselhvel usar as TEdit mesmo? Neste caso, eu no
precisaria usar uma TSQLQuery, certo?
Tambm estou tendo problemas com a minha TSQLQuery da
minha aplicao. Pois, quando vou escolher o DataSource
referente a ele d uma erro assim: "Error. Consulta: Circular
DataSource not allowed" . O que poderia estar acontecendo?
5:23 AM
Professor Carlos disse...
Pode usar tanto um quanto outro. Em ambos precisa de
TSQLQuery.
No caso desse provvel que voc esteja definindo algo na
propriedade DataSource da TSQLQuery. Isso no deve ser
feito. A ligao entre TDataSource e TSQLQuery se d
apenas pela propriedade DataSet de TDataSource.
8:04 AM
Yindi disse...
Bom dia prof Carlos,
Neste caso, referente ao codigo q postou para inserir no BD:
queCidade.SQL.Add('insert into cidade values (id_cidade =
:pId, nome = :pNome)');
queCidade.ParamByName('pId').Value := StrToInt(Edit1.Text);
queCidade.ParamByName('pNome').Value := Edit2.Text;
queCidade.ExecSQL;
uso o lazarus v0.9.28, tenho q usar a propriedade params,
sendo que em queCidade.ParamByName('pId').Value :=
StrToInt(Edit1.Text); por exemplo, 'pId' declarado onde? 'pId'
o campo da minha tabela ou apenas um codnome?
7:49 AM
Professor Carlos disse...
Bom dia
Observe que no comando SQL tem dois identificadores
precedidos por :. Isso so parmetros que so usados em
ParamByName. Mas na verso que voc est usando isso
no funciona assim. No lugar de ParamByName('pId') digite
Params[0] e Params[1] no lugar de ParamByName('pNome')
8:06 AM
papa hacker disse...
PROFESSOR EU GOSTEI DO TUTORIAL MA SEU QUERIA
TE PEDIR PARA FAZER UM TUTORIAL EM VDEO PARA
NS QUE CURTIMOS O FREE PASCAL SE VC FIZER ME
OU SABE DE ALGUM LINK S ME ADD NO MSN
LUCIANOFOREVERMSN@HOTMAIL.COM ABRIGADO.
4:32 PM
Professor Carlos disse...
Opa
Prometo que vou fazer os vdeos. Assim que os tiver postado
ponho os links aqui no blog. Mas procure no youtube, que
alguns colegas postaram alguma coisa.
26/04/13 Lazarus - Acessando banco de dados com SQLdb - Parte I | Professor Carlos Arajo
professorcarlos.blogspot.com.br/2010/02/lazarus-acessando-banco-de-dados-com.html 10/12
9:57 AM
O pai de Joo Victor disse...
Professor, boa tarde.
Estou comeando o desenvolvimento com lazarus. Coisas
pequenas por enquanto. Tenho um projeto pequeno em
delphi que eu queria migrar para Lazarus, mas no encontrei
componente de conexo ao MSSQ (posso usar o sql server
expess 2005 ou 2008) mas teria que ser MSSLQ mesmo no
d pra migrar o banco, por enquanto. Existe alguma forma de
conectar ao SQL Server? O Zeos eu tenho, mas no vi opo
de acesso ao MSSQL. O Sr. conhece alguma forma?
Obrigado pelo seu tempo e parabns pelo blog.
2:39 PM
Professor Carlos disse...
Ol
No pacote SQLdb voc pode usar o ODBCConnection, pra
fazer a conexo atravs de driver ODBC. No Zeos, o
ZConnection tem a propriedade protocol. Nela voc define
MSSQL.
4:09 PM
Joo disse...
Boa tarde, como eu faria para criar uma tabela e o seguinte:
Criei no form2, um formulrio para insero de dados de
alunos, tipo matricula, nome, pai,me, etc. So que no Delphi
eu tinha a opo Table e paradox, criava uma tabela dentro
do proprio Delphi, estou usando o lazarus 0.9.30, ele j vem
com sqldb instalado, agora, como criar esse banco de
dados, a mascara do form, est criado e agora como inserir
esses dados?????
12:49 PM
Professor Carlos disse...
Penso que voc est se referindo a um assistente que existe
no Delphi. Isso no existe no Lazarus. Voc precisa criar o
banco de dados usando outra ferramenta. Os bancos de
dados compatveis so Firebird, MySQL, SQLite,
PostgreSQL e Oracle. Voc pode usar a ferramenta que eu
descrevo em
http://professorcarlos.blogspot.com.br/2011/07/lazarus-o-
lazarus-data-desktop.html, mas sempre vai precisar de um
SGBD instalado. O nico que no precisa o SQLite.
1:19 PM
Nicole Stodulski disse...
Bom Dia Professor,
Gostaria de saber se o senhor j fez conexo do lazarus
com o SQL Server?
Grata pela ateno.
8:27 AM
Professor Carlos disse...
J fiz usando o ZeosLib (http://zeos.firmos.at/)
8:55 AM
Pucka disse...
26/04/13 Lazarus - Acessando banco de dados com SQLdb - Parte I | Professor Carlos Arajo
professorcarlos.blogspot.com.br/2010/02/lazarus-acessando-banco-de-dados-com.html 11/12
Ol Professor, utilizo o Lazarus e o BD SQlite, verso 3.xx.
At alguns dias atrs, trabalhava com o Lazarus 0.9.28.2, o
ZEOSDBO 6.6.6 stable e o sqlite3.dll v:3.t7.3 e tudo ia as
mil. Agora, atualizei o Lazarus para a v:1.0.4, o ZEOSDBO
7.0.3stable e acontecia um problema durante a compilao.
Consegui superar isso. Consigo ler a tabela, mas ao tentar
atualiz-lo, simplesmente no est fazendo a gravao
(atualizando o registro). A propriedade CachedUpdates do
TZQuery est true e o AutoCommit do TZConnection est em
false. Onde ser que estou falhando ? Ser que o senhor
poderia me ajudar ? Desde j agradeo a ateno.
6:53 PM
Professor Carlos disse...
Se o AutoCommit est em False voc deve fazer o commit
explicitamente em algum evento tal como AfterPost, por
exemplo, ou incluir um boto para fazer isso em todos os
registros do cache.
1:33 PM
Pucka disse...
Ol Professor Carlos,
Antes de mais nada, gostaria de agradecer pelo carinho com
que tem sempre nos atendido. Desta vez, aps os
insucessos, fiz alguns testes para tentar desvendar o qu
poderia estar provocando o erro. Por sorte, tinha uma cpia
reserva do programa. Assim, instalei em um micro, o
Lazarus 0.9.30 e o ZEOS 6.6.6 stable. Compilei o programa,
rodei beleza ! Tudo certinho. Assim, apesar de poucos
testes, estou chegando concluso que: ao fazermos a
atualizao do Lazarus (talvez possa ser vlido tambm para
os componentes que gerenciam os BDs como o ZEOS ->
no posso afirmar, apenas uma suspeita). Precisamos
substituir tambm no programa, todos objetos do novo
componente antes de recompilar.
OBS.: pessoal, faam o backup sempre, se no tivesse o
meu, estava lascado, pois virou um perfeito zumbi...
De qualquer modo, muito obrigado
pelas dicas. Certamente sero teis adiante. [ ].
Dica: se algum desenvolve sistemas pelo Lazarus e faz a
manuteno. No saia atualizando simplesmente. Poder ter
uma grande dor-de-cabea. Faa alguns testes antes, com
uma cpia de segurana, claro!
7:53 PM
Leonardo Rmulo disse...
tem como deletar o banco de dados criado no sqlite3
banco.db?
11:20 PM
Professor Carlos disse...
Sim. Pode deletar e criar outro
8:53 AM
Leonardo Rmulo disse...
estou com uma duvida na chamada de formularios pelo
formulario principal
no caso para programar a chamada do form frmCidade
eu tenho que digitar abaixo de Implementation:
26/04/13 Lazarus - Acessando banco de dados com SQLdb - Parte I | Professor Carlos Arajo
professorcarlos.blogspot.com.br/2010/02/lazarus-acessando-banco-de-dados-com.html 12/12
This work by Carlos Alberto P. Arajo is licensed under a Creative Commons Atribuio-Uso no-comercial-Compartilhamento pela mesma
licena 3.0 Brasil License.
Postagem mais recente Postagem mais antiga
Postar um comentrio
Incio
Assinar: Postar comentrios (Atom)

uses u_cidade;
porem nesse formulario principal ja tem programado a
chamada do formulario u_dmDados;
ento a implemetation do formulario principal teria que ficar
assim
implemetation
uses u_dmDados;
uses u_cidade;
a minha duvida e se eu tenho que digitar o uses de novo e se
um mesmo formulario pode chamar mais de 1 formulario
adicional
12:05 PM
Professor Carlos disse...
deve ter apenas uma linha uses:
uses u_dmDados, u_cidade;
Sempre vai adicionando as units nessa linha separando-as
com virgula
Um form pode chamar quantos outros forem necessrios
2:01 PM