Lazarus - Acessando Banco de Dados Com SQLdb - Parte I _ Professor Carlos Araújo

download Lazarus - Acessando Banco de Dados Com SQLdb - Parte I _ Professor Carlos Araújo

of 12

Transcript of Lazarus - Acessando Banco de Dados Com SQLdb - Parte I _ Professor Carlos Araújo

  • 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 dadosno Lazarus vamos usar o SQLite e o conjunto decomponentes nativo SQLdb. Inicialmente vamos apresentarpasso como essa aplicao foi criada. Essa foi a maneiraque eu fiz, e eu agradeo sugestes e questionamentos que pessoas quej passaram por essa experincia. Depois irei fazer algumas consideraessobre o uso do SQLdb.

    SQLite

    SQLite uma biblioteca que implementa um motor de banco de dadosSQL. livre para qualquer finalidade, seja uso particular ou comercial. L eescreve em um nico arquivo que pode ter alm de tabelas, ndices,gatilhos e vises. Executa em vrias plataformas e indicado paraaplicaes embarcadas. Maiores detalhes podem ser encontrados no siteoficial. Para us-lo, baixe-o do site e faa a instalao adequada para o seusistema operacional. No Windows isso muito simples, apenas copiesqlite3.dll para o system32 da pasta do sistema operacional.Existe uma ferramenta de linha de comando chamada sqlite3 que podemosusar para criar o banco de dados e as tabelas. Pode ser baixada no prpriosite oficial do SQLite. Depois de instaladas a dll e a ferramenta de criaodo banco execute-a digitando o seguinte comando no console do sistemaoperacional:

    sqlite3 banco.db

    Se o banco j existir ele ser aberto para operaes como criar/alterartabelas e consultar/inserir/atualizar/deletar dados nas tabelas existentes.Depois disso digite os comandos SQL para a criao de duas tabelasnecessrias 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 oencontra na aba SQLdb. Algumas informaes esto emhttp://wiki.freepascal.org/SQLdb_Package. Com esse pacote podemosconectar ao PostgreSQL, Oracle, MySQL, Firebird, SQLite e ODBC. Paracada um desses existe um componente TXXXConnection. Para conectar aoFirebird, por exemplo, existe o componente TIBConnection. Para executaras operaes sobre tabelas temos o TSQLQuery e o TSQLTransaction. Aseguir iremos criar a aplicao e mostraremos como utilizar essescomponentes.

    O blog nas redes sociais

    Siga-nos se julgar importante

    Blog do professor Carlos

    Curtir 86

    Postagens mais populares

    Lazarus - Acessando banco de dados comSQLdb - Parte I

    Lazarus - Criando uma aplicao paraWinCE

    Lazarus - Criando relatrios comFortesReport (Parte I)

    Lazarus - Conectando PostgreSQL comZeosLib

    Tipos de dados no SQLite

    Lazarus - Criando menus

    Lazarus - Conectando MySQL com SQLdbou ZeosLib

    Lazarus - Acessando banco de dados comSQLdb - Parte II

    Lazarus - Conectando Firebird com SQLdbou ZeosLib

    Lazarus - Emulador WinCE/WindowsMobile

    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 formcrie um menu com a seguinte estrutura. Se for necessrio leia o artigosobre criao de menus emhttp://professorcarlos.blogspot.com/2010/01/lazarus-criando-menus.html:

    Arquivo SairCadastros Cidade ClienteConsultas Cidade Cliente

    Mude a propriedade Name desse form para frmPrincipal. Mande salvartudo. Escolha u_principal para nome da unit e Clientes para nome doprojeto. fortemente aconselhado que os componentes de conexo e acesso aobanco de dados estejam agrupados em um repositrio denominadoDataModule. Para criar um DataModule no Lazarus selecione o menuArquivo -> Novo. Selecione Data Module abaixo do grupo Mdulo epressione o boto OK. Mude a propriedade Name para dmDados, mandesalvar e d o nome u_dmdados para esta unit.Agora selecione a aba de componentes SQLdb e coloque umTSQLite3Connection no DataModule. Na propriedade DatabaseNameinforme o nome do arquivo do banco de dados com o caminho. Mude apropriedade Name para dbCliente. Neste momento podemos mudar apropriedade Connected para True. Se nenhum erro acontecer ocomponente de conexo est corretamente configurado. Volte apropriedade Connected para False. Coloque um componenteTSQLTransaction no DataModule. Na propriedade Database selecionedbCliente e em Name digite trGeral. Retorne ao SQLite3Connection eselecione trGeral na propriedade Transaction. TSQLTransaction ocomponente que controla as transaes no banco de dados. Em um bancode dados as operaes ocorrem no contexto de uma transao. Umatransao finaliza com sucesso atravs de um COMMIT e ROLLBACKdesfaz as operaes realizadas anteriormente.Selecione um TSQLQuery e coloque no DataModule. Na propriedadeDatabase selecione dbCliente. Na propriedade Name digite queCidade eem SQL informe select * from cidade. Na propriedade Transaction definatrGeral. Agora localize a aba Data Access. Selecione um componenteTDataSource e coloque no DataModule. Defina Name como dsCidade eem DataSet selecione queCidade. Resumindo, fizemos a conexo com obanco de dados usando SQLite3Connection, em seguida definimos umcomponente para controlar as transaes, definimos uma conexo comuma tabela do banco usando TSQLQuery, e criamos uma ligao entre atabela e os componentes que tero a funo de ler os campos dessatabela usando TDataSource. Esse um procedimento repetitivo paranovas tabelas nessa aplicao e mesmo quando usarmos outros conjuntosde componentes. O DataModule ter essa aparncia, j com oscomponentes 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 dadoscom SQLdb - Par...

    Lazarus - Acessando banco de dadoscom SQLdb - Par...

    Aventurando-se no Linux - VirtualBox

    Lazarus - Barras de ferramentas e destatus

    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 umTSQLQuery e um TDataSource. Selecione o form principal e, no editor decdigo, digite abaixo de Implementation:

    uses u_dmdados;

    Localize o evento OnShow na aba Eventos do Inspetor de objetos. Dum duplo clique direita e digite:

    dmDados.dbCliente.Open;

    Assim, sempre que o programa for iniciado a conexo com o banco dedados ser aberta.

    Form de Cidade

    Insira um novo form na aplicao. Ele ser desenhado para fazer asatualizaes na tabela Cidade. Defina o Name do form como frmCidade e oCaption como Cidades. Salve a unit e defina seu nome como u_cidade. Odesenho deste form deve ter a seguinte aparncia.

    Antes de comear a desenhar a janela, acesse o cdigo da unit e insira oseguinte 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. Aspropriedades BevelInner e BevelOuter so usadas para definir contornospara o painel. Deixe, por exemplo, como bvLowered e bvRaisedrespectivamente.Agora selecione um TDBNavigator na aba Data Controls e o coloque noform 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. Noprimeiro defina Name como edIdCidade, em DataSource selecionedsCidade e em DataField digite ID_CIDADE. Essa ltima atribuio irprovocar um erro, mas isso no vai interferir no resultado. No segundoTDBEdit defina Name como edNome, DataSource como dsCidade e emDataField digite NOME. Selecione TLabel na aba Standard e coloque um esquerda de cada TDBEdit para identific-los. Defina suas propriedadesCaption como ID e Nome, respectivamente. Para finalizar o desenhocoloque um TSpeedButton da aba Additional sobre o painel. DefinaName como btnSair e escolha um cone apropriado para ele usando apropriedade Glyph. No evento OnClick deste boto digite:

    Close;

    necessrio programar a abertura e o fechamento da Query no form. Aabertura ser programada no evento OnShow e o fechamento serprogramado no evento OnClose, ambos de form. Com o form selecionadoselecione da aba Eventos no Inspetor de Objetos. Localize o eventoOnShow, 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 formprincipal. Selecione o form principal, mude para o editor de cdigo e digiteabaixo de Implementation:

    uses u_cidade;

    Volte para o form e clique no menu Cadastros -> Cidades. No editor decdigo digite:

    frmCidade.Show;

    Se voc compilar e executar o programa verificar que no consegue aindainserir dados na tabela Cidade. Todos os dados que so inseridos ficam emcache. necessrio enviar os dados para o banco e finalizar a transao.Isso ser feito no evento AfterPost da Query. Este evento ocorre aps umregistro ser gravado no banco. Selecione o DataModule e em seguidaqueCidade. Clique na aba Eventos do Inspetor de Objetos. Localize oevento 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 deexceo. 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 Carlos 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 direitapara selecionar um mtodo existente. Selecione queCidadeAfterPost.Assim reaproveitamos o cdigo que executa a mesma operao necessriano AfterDelete.Compile e execute o programa. No post seguinte daremos seguimento aodesenvolvimento dessa aplicao.

    Marcadores: Data Module, SQLdb, SQLite

    Posts Relacionados

    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 AMBkBrasil disse...

    Verifique se o DataSource do dbNavigator est vazio. Se

    estiver, escolha a tabela na qual ele ir operar.

    12:11 PMAnnimo 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 AMProfessor 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 PMRoberto 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 PMProfessor 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 PMPucka 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 PMProfessor Carlos disse...

    Mude a propriedade CharSet do SQLite3Connection para

    utf8. Me d um retorno se funcionou.

    8:14 PMPucka 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 PMProfessor Carlos disse...

    Veja se consegue fazer seguindo esses passos:

    http://professorcarlos.blogspot.com/2010/03/lazarus-

    conectando-postgresql-com.html

    1:44 PMArtur disse...

    Ol, professor!

    No consigo encontrar o TSQLite3Conection na aba SQLdb.

    O que devo fazer?

    9:25 AMProfessor 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 AMAnnimo 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 PMProfessor 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 PMYindi 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 PMProfessor Carlos disse...Este comentrio foi removido pelo autor.4:55 PMProfessor Carlos disse...

    Tente copiar a biblioteca para a pasta /lib ou /usr/lib

    5:01 PMProfessor Carlos disse...

    Yindi

    Eu baixei esse deb aqui http://automation.binarysage.net/?

    dl_id=6 e instalei com dpkg -i

    5:32 PMYindi 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 AMProfessor 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 AMYindi 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 AMProfessor 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 AMYindi 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 AMProfessor 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 AMpapa 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

    [email protected] ABRIGADO.

    4:32 PMProfessor 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 AMO 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 PMProfessor 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 PMJoo 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 PMProfessor 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 PMNicole 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 AMProfessor Carlos disse...

    J fiz usando o ZeosLib (http://zeos.firmos.at/)

    8:55 AMPucka 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 PMProfessor 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 PMPucka 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 PMLeonardo Rmulo disse...

    tem como deletar o banco de dados criado no sqlite3

    banco.db?

    11:20 PMProfessor Carlos disse...

    Sim. Pode deletar e criar outro

    8:53 AMLeonardo 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 mesmalicena 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 PMProfessor 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