Difference between revisions of "Zeos tutorial/pt"

From Lazarus wiki
Jump to navigationJump to search
 
(83 intermediate revisions by 14 users not shown)
Line 1: Line 1:
== Overview ==
+
{{Zeos tutorial}}
  
This tutorial is about getting, installing and using [http://www.zeoslib.net Zeoslib] with [[Glossary#Lazarus|Lazarus]] and [[Glossary#FreePascal|FPC]].
+
== Descrição ==
<br>
+
[http://www.pauloamaral.com.br/cefetse.pa/zeos_lazarus.htm Link do tutorial Instalação do ZeosLib no Lazarus (for Windows) pelo Professor Paulo do Amaral Costa, datado de Abril/2006].<br>
<br>
+
[http://www.pauloamaral.com.br/cefetse.pa/zeoslib_tutorial.htm Link com breve explicação sobre os componentes da biblioteca ZeosLib pelo Professor Paulo do Amaral Costa].<br>
'''<font color=navy>The Zeos team has recently made a new forum, Please visit the new forum for more information about ZeosLib and to ask/answer questions about using Zeos and report bugs. The new forum can be found here [http://forum.zeoslib.net.ms Forum for ZeosLib] or here [http://zeosforum.net.ms Zeos Forum]</font>'''
+
Versão da ZeosLib: zeosdbo-6.5.1-alpha_cvs_13-10-2005<br>
 +
Versão do Lazarus: Lazarus-0.9.14.1-20060402-win32 (Freepascal 2.0)<br>
 +
Sistema Operacional: Windows XP<br>
 +
Obrigado por sua contribuição, Professor.
 +
 
 +
Este tutorial trata de como começar, instalar e usar [http://zeos.firmos.at/portal.php Zeoslib] com [[Glossary#Lazarus|Lazarus]] e [[Glossary#FreePascal|FPC]].
 +
 
 +
'''<font color=navy>A equipe do Zeos recentemente fez um novo fórum. Por favor, viste-o para maiores informações a respeito do Zeoslib e perguntar/responder a respeito de como usar o Zeos e reportar seus bugs. O novo fórum se encontra em [http://zeos.firmos.at Forum for ZeosLib].</font>'''
 +
 
 +
== Começando com o Zeos ==
 +
 
 +
Zeos foi recentemente portado para o Lazarus já com sua liberação oficial zeosdbo-6.6.0-beta liberado em 25-10-2006  [http://sourceforge.net/project/showfiles.php?group_id=35994  Zeosdbo-6.6.0].
 +
 
 +
== Instalando os componentes ==
 +
 
 +
Esta é uma parte um pouco complicada, assim você deve ter um pouco de paciência e ler esta parte com cuidado.  
 +
 
 +
* Certifique-se de ter a última versão do  [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus] e do último [http://sourceforge.net/project/showfiles.php?group_id=2174    Free Pascal] .
 +
 
 +
* Inicie o Lazarus.
 +
 
 +
# Opção '''Componentes/Open Package File(.lpk)''' no menu principal.
 +
# Abra o diretório '''zeosdbo-6.6.0-beta\packages\lazarus\''' selecione os arquivos '''zcomponent.lpk'''  '''zcore.lpk''' '''zdbc.lpk'''  '''zparsesql.lpk'''  '''zplain.lpk''' e clique em abrir, quando abrirá cada pacote em uma janela
 +
# Pressione '''[Compilar]''' em cada pacote ( janela aberta )
 +
# Pressione '''[Instalar]''' na janela zcomponent.lpk
 +
# Você será perguntado se deseja recompilar o lazarus.
 +
* Responda '''[Sim]''' .
 +
* Espere até a compilação concluir, Lazarus reiniciará em seguida.
 +
* Se tudo ocorrer bem você deverá ver agora a aba de [acesso da lib Zeos] na Paleta de componentes.
 +
 +
Se você receber o erro "Cannot find unit ZClasses" (não pude encontrar a unit ZClasses) ou algo similar, você necessitará verificar com cuidado os nomes dos arquivos na sua fonte do Zeos.
 +
 
 +
* Mesmo se maiúsculas e minúsculas coincidirem exatamente, o arquivo dos fontes do pacote auto-gerado pode gerar coincidências maiúscula/minúscula erradas na cláusula uses (Lazarus 0.9.18). Exemplo:
 +
 
 +
  { This file was automatically created by Lazarus. Do not edit!
 +
    This source is only used to compile and install the package.
 +
  }
 +
  unit Zcore;
 +
  interface
 +
  uses
 +
    Zclasses, Zcollections, Zcompatibility, Zexprparser, Zexprtoken, Zexpression,
 +
    Zfunctions, Zmatchpattern, Zmessages, Zsysutils, Ztokenizer, Zvariables,
 +
    Zvariant;
 +
  implementation
 +
  end.         
 +
 
 +
* Note que o Lazarus nomeou a unidade ZClasses como Zclasses, resultando em um conflito de nomes. Presumivelmente esse é um bug do Lazarus, não do pacote Zeos. Uma maneira de contornar isso é nomear todos os arquivos de fontes do Zeos para minúsculas. Vasculhe os subdiretórios em src/ e execute este comando numa janela bash:
 +
 
 +
  rename -v 'y/A-Z/a-z/' *
 +
 
 +
* Depois, no Lazarus, reabra o pacote (.lpk) e conserte o nome do arquivo clicando em "More..."/"Fix Files Case".
 +
* O pacote deverá compilar.
 +
 
 +
== Comentários ==
 +
 
 +
Atualmente o CVS do Zeos para Lazarus tem pacotes quebrados. Alguns comentários do IgD:
 +
 
 +
Usando uma instalação recente do Lazarus 0.9.12 (latest stable version) eu pude instalar a ZeosLib datada de 13 de Out de 05. Primeiro conserte os seguintes bugs na ZeossLib:
 +
 
 +
* 1. Mude ZplainPostgreSql81.pas para ZPlainPostgresSql8x.pas em zplain.lpk
 +
 +
<Item22>
 +
  <Filename Value="../../src/plain/ZPlainPostgreSql81.pas"/>
 +
  <UnitName Value="ZPlainPostgreSql8x"/>
 +
</Item22>
 +
 +
 
 +
* 2. Conserte os seguintes erros em zdbc.lpk:
 +
 
 +
a. Remova os "/" extra de "build/" (remova o que está entre as aspas)
 +
 
 +
<SearchPaths>
 +
  <OtherUnitFiles Value="../../src/dbc/"/>
 +
  <UnitOutputDirectory Value="build/"/>
 +
</SearchPaths>
 +
 +
b. Coloque as aspas que faltam em unitname value
  
== Getting Zeos ==
+
<Item43>
 +
  <Filename Value="../../src/dbc/ZDbcASA.pas"/>
 +
  <UnitName Value="ZDbcASA/>
 +
</Item43>
  
Zeos has recently been ported to [[Glossary#Lazarus|Lazarus]] and there are no releases yet that officially support it but you can easily get it from CVS if you follow these steps:
+
Aqui estão as instruções de instalação:
  
* Get a CVS client [http://www.wincvs.org/ CvsGui(WinCvs, MacCvs, gCvs)], [http://www.tortoisecvs.org/ TortoiseCvs(Windows Only)] or [http://www.cvsnt.org/ CvsNT(Console Version)]
+
Antes do Lazarus 0.9.13 você precisa abrir cada um dos pacotes por Components/Open Package File na seguinte ordem:
  
* Set the system path to include your cvs client (if necessary) depending on what client you chose or configure your GUI client to use this '''CVSROOT -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib'''.
+
# zcore.lpk
* If you have configured your system path open a terminal/console/dosbox and go to the directory where you store your cvs and type:<br>'''cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib checkout zeosdbo_rework'''
+
# zparsesql.lpk
* You should see some progress, after all files have been downloaded go to the '''zeosdbo_rework''' directory and have a look at what it contains.
+
# zplain.lpk
* For every day usage do not use checkout but instead go to the zeosdbo_rework directory and type '''cvs -z3 update -P'''
+
# zdbc.lpk
  
== Installing the components ==
+
Finalmente abra zcomponent.lpk, compile e instale este pacote. 0.9.13 pode simplesmente abrir zcomponent.lpk.  A IDE vai abrir o resto automaticamente.
  
This is a tricky part so you should have a little patience and read this part carefully.
+
Nota: os primeiros quatro pacotes só precisam ser compilados e não podem ser instalados.
  
* Make sure you have the latest [http://www.de.freepascal.org/lazarus/ Lazarus snapshot].
+
--[[User:Forest|Forest]] 17:41, 2 Nov 2005 (CET)
  
* Start one instance of Lazarus.
+
* 3. Se você compilar e instalar o Zeos com sucesso, mas não o Lazarus, depois de reconstruir comece com:
 +
[[Image:Zeoserror.gif]]
  
# Use '''Components/Open Package File(.lpk)''' from the main menu.
+
Então você pode fazer:
# Go to '''zeosdbo_rework\packages\lazarus\''' and open '''ZCore.lpk'''
 
# Press '''[Compile]''' (and wait ...)
 
# Press '''[Install]'''
 
# A message will appear informing you that this is a runtime package wich cannot be installed.
 
# Press '''[Ignore]'''
 
# You are asked if you want to recompile Lazarus.
 
# Answer '''[No]'''
 
# Close the instalation form.
 
  
* Repeat steps 1 to 9 for the folowing packages (Open them instead of Zcore.lpk):
+
No arquivo Zeos.Inc substitua, na seção "// Settings for Debug mode":
** - ZParseSql.lpk
+
{$R-}
** - ZPlain.lpk
+
por
** - ZDbc.lpk
+
{$R+}
  
* Now repeat steps 1 to 6 for the package ZComponent.lpk
+
--[[User:Junior|Junior]] 19:48, 15 Apr 2006 (GMT)
* You are asked to recompile Lazarus.
 
* Answer '''[Yes]''' this time.
 
* Wait until compilation ends, Lazarus should restart itself after that.
 
* If all is ok you should now be able to see the '''[Zeos Access]''' tab in the Component Palette.
 
  
== Make your first Zeos application ==
+
== Fazendo sua primeira aplicação Zeos ==
  
* Drop a '''ZConnection'''.
+
* Insira no formulário o componente '''ZConnection''' para estabelecer a conexão com o banco de dados.
** Set your User, Password, Host, Port and Protocol (and any other params if needed).
+
** Configure no Object Inspector selecionando seu Banco de Dados "Database", seu Usuário "User", sua senha "Password", o Host, a porta "Port" e o protocolo "Protocol" (e outros parâmetros se necessário) para a conexão com o banco de dados.
** Set Connected to True.
+
** Configure Conectado "Connected"  como Verdadeiro "True".
  
 
* Drop a '''ZQuery''' (<font color=red>do not mistake with ZReadOnlyQuery</font>).
 
* Drop a '''ZQuery''' (<font color=red>do not mistake with ZReadOnlyQuery</font>).
Line 64: Line 132:
 
** If all is ok you should now be able to see the records from your table.
 
** If all is ok you should now be able to see the records from your table.
  
== More information about working with Zeos ==
+
== Maiores informações sobre como trabalhar com Zeos ==
  
Here you can find some really useful articles explaining Zeos usage and it's internals, some of them  also talk about Delphi specific stuff but mostly the same techniques can be used in Lazarus too.<br>
+
Aqui você encontra alguns artigos explicando o uso do Zeos, alguns deles falam especificamente no uso com a linguagem Delphi, mas na maioria das vezes as mesmas técnicas podem ser usadas também no Lazarus.<br>
 +
 
 +
* [http://zeos.firmos.at/kb.php?mode=article&k=6 Tutorial ZeosLib DBOs 6.1.5 - com Delphi 7 e Firebird 1.5]
 +
* [http://www.pauloamaral.com.br/cefetse.pa/zeoslib_tutorial.htm  Tradução e adaptação do Tutorial ZeosLib DBOs 6.1.5 - With Delphi 7 and Firebird 1.5]
 +
* [http://zeos.firmos.at/kb.php?mode=article&k=4 Overview of the Zeos Database Objects Architecture]
 +
* [http://zeos.firmos.at/kb.php?mode=article&k=5 Uma introdução a API ZDBC]
 +
* Verifique na seção [http://zeos.firmos.at/downloads.php Downloads] exemplos reais que podem ser facilmente portados para o Lazarus.
  
* [http://seegernet.koolhost.de/zeosforum/kb.php?mode=article&k=6 The ZeosLib DBOs 6.1.5 - With Delphi 7 and Firebird 1.5]
 
* [http://seegernet.koolhost.de/zeosforum/kb.php?mode=article&k=4 Overview of the Zeos Database Objects Architecture]
 
* [http://seegernet.koolhost.de/zeosforum/kb.php?mode=article&k=5 An Introduction To ZDBC API]
 
* Also check the [http://seegernet.koolhost.de/zeosforum/downloads.php Downloads] section for real examples wich can be easily ported to Lazarus.
 
 
<br>
 
<br>
'''Please complete me :)'''
+
'''Por favor complete-me :)'''
  
 
== Possible Bugs and Issues ==
 
== Possible Bugs and Issues ==
  
# I have noticed that somethimes when buliding Lazarus it cannot find some Zeos files, as a quick workaround try this:
+
 
#* Use '''Components/Package Graph''' from the main menu.
+
# Eu notei que às vezes, ao construir o Lazarus, ele não consegue achar alguns arquivos do Zeos. Para contornar, tente isso:  
#* Open the '''ZComponent''' package.
+
#* Vá a '''Components/Package Graph''' no menu principal .
#* Right Click on the '''Files''' item in the list.
+
#* Abra o pacote '''ZComponent''' .
#* Chose '''[Recompile all required]'''.
+
#* Clique com o botão direito em  '''Files'''.
#* When asked "Re-Compile this and all required packages?" answer '''[Yes]'''.
+
#* Escolha '''[Recompile all required]'''.
#* Recompile Lazarus normally (with packages).<br><br>
+
#* Quando perguntado "Re-Compile this and all required packages?" responda '''[Yes]'''.
# There is a bug in [[Glossary#Freepascal|FPC's]] [http://lazarus-ccr.sourceforge.net/docs/rtl/sysutils/ansistrcomp.html AnsiStrComp] wich causes unreliable PChar comparison, this is obvious when using a DBGrid to edit data, '''AnsiStrComp('abc', 'abcd')''' can't detect them as being different but it detects '''AnsiStrComp('abd', 'abcd')''' ignoring multiple chars from the second string. This bug was found by [[User:Jesusrmx|Jesusrmx]]. It will probably be fixed soon, see [http://www.freepascal.org/bugs/showrec.php3?ID=4325 Bug Report].
+
#* Recompile o Lazarus normalmente (com os pacotes).<br><br>
 +
# Existe um bug em [[Glossary#Freepascal|FPC's]] [http://lazarus-ccr.sourceforge.net/docs/rtl/sysutils/ansistrcomp.html AnsiStrComp] que causa unreliable PChar comparison, isso  é óbvio ao usar um DBGrid para editar dados, '''AnsiStrComp('abc', 'abcd')''' can't detect them as being different but it detects '''AnsiStrComp('abd', 'abcd')''' ignoring multiple chars from the second string. Este bug foi encontrado por[[User:Jesusrmx|Jesusrmx]]. Provavelmente vai ser corrigido logo, veja [http://www.freepascal.org/bugs/showrec.php3?ID=4325 Bug Report].

Latest revision as of 01:44, 23 June 2008

Deutsch (de) English (en) español (es) français (fr) português (pt) русский (ru) 中文(中国大陆)‎ (zh_CN)

Descrição

Link do tutorial Instalação do ZeosLib no Lazarus (for Windows) pelo Professor Paulo do Amaral Costa, datado de Abril/2006.
Link com breve explicação sobre os componentes da biblioteca ZeosLib pelo Professor Paulo do Amaral Costa.
Versão da ZeosLib: zeosdbo-6.5.1-alpha_cvs_13-10-2005
Versão do Lazarus: Lazarus-0.9.14.1-20060402-win32 (Freepascal 2.0)
Sistema Operacional: Windows XP
Obrigado por sua contribuição, Professor.

Este tutorial trata de como começar, instalar e usar Zeoslib com Lazarus e FPC.

A equipe do Zeos recentemente fez um novo fórum. Por favor, viste-o para maiores informações a respeito do Zeoslib e perguntar/responder a respeito de como usar o Zeos e reportar seus bugs. O novo fórum se encontra em Forum for ZeosLib.

Começando com o Zeos

Zeos foi recentemente portado para o Lazarus já com sua liberação oficial zeosdbo-6.6.0-beta liberado em 25-10-2006 Zeosdbo-6.6.0.

Instalando os componentes

Esta é uma parte um pouco complicada, assim você deve ter um pouco de paciência e ler esta parte com cuidado.

  • Inicie o Lazarus.
  1. Opção Componentes/Open Package File(.lpk) no menu principal.
  2. Abra o diretório zeosdbo-6.6.0-beta\packages\lazarus\ selecione os arquivos zcomponent.lpk zcore.lpk zdbc.lpk zparsesql.lpk zplain.lpk e clique em abrir, quando abrirá cada pacote em uma janela
  3. Pressione [Compilar] em cada pacote ( janela aberta )
  4. Pressione [Instalar] na janela zcomponent.lpk
  5. Você será perguntado se deseja recompilar o lazarus.
  • Responda [Sim] .
  • Espere até a compilação concluir, Lazarus reiniciará em seguida.
  • Se tudo ocorrer bem você deverá ver agora a aba de [acesso da lib Zeos] na Paleta de componentes.

Se você receber o erro "Cannot find unit ZClasses" (não pude encontrar a unit ZClasses) ou algo similar, você necessitará verificar com cuidado os nomes dos arquivos na sua fonte do Zeos.

  • Mesmo se maiúsculas e minúsculas coincidirem exatamente, o arquivo dos fontes do pacote auto-gerado pode gerar coincidências maiúscula/minúscula erradas na cláusula uses (Lazarus 0.9.18). Exemplo:
 { This file was automatically created by Lazarus. Do not edit!
   This source is only used to compile and install the package.
 }
 unit Zcore; 
 interface
 uses
   Zclasses, Zcollections, Zcompatibility, Zexprparser, Zexprtoken, Zexpression, 
   Zfunctions, Zmatchpattern, Zmessages, Zsysutils, Ztokenizer, Zvariables, 
   Zvariant; 
 implementation
 end.           
  • Note que o Lazarus nomeou a unidade ZClasses como Zclasses, resultando em um conflito de nomes. Presumivelmente esse é um bug do Lazarus, não do pacote Zeos. Uma maneira de contornar isso é nomear todos os arquivos de fontes do Zeos para minúsculas. Vasculhe os subdiretórios em src/ e execute este comando numa janela bash:
 rename -v 'y/A-Z/a-z/' *
  • Depois, no Lazarus, reabra o pacote (.lpk) e conserte o nome do arquivo clicando em "More..."/"Fix Files Case".
  • O pacote deverá compilar.

Comentários

Atualmente o CVS do Zeos para Lazarus tem pacotes quebrados. Alguns comentários do IgD:

Usando uma instalação recente do Lazarus 0.9.12 (latest stable version) eu pude instalar a ZeosLib datada de 13 de Out de 05. Primeiro conserte os seguintes bugs na ZeossLib:

  • 1. Mude ZplainPostgreSql81.pas para ZPlainPostgresSql8x.pas em zplain.lpk
<Item22>
  <Filename Value="../../src/plain/ZPlainPostgreSql81.pas"/>
  <UnitName Value="ZPlainPostgreSql8x"/>
</Item22>

  • 2. Conserte os seguintes erros em zdbc.lpk:

a. Remova os "/" extra de "build/" (remova o que está entre as aspas)

<SearchPaths>
  <OtherUnitFiles Value="../../src/dbc/"/>
  <UnitOutputDirectory Value="build/"/>
</SearchPaths>

b. Coloque as aspas que faltam em unitname value

<Item43>
  <Filename Value="../../src/dbc/ZDbcASA.pas"/>
  <UnitName Value="ZDbcASA/>
</Item43>

Aqui estão as instruções de instalação:

Antes do Lazarus 0.9.13 você precisa abrir cada um dos pacotes por Components/Open Package File na seguinte ordem:

  1. zcore.lpk
  2. zparsesql.lpk
  3. zplain.lpk
  4. zdbc.lpk

Finalmente abra zcomponent.lpk, compile e instale este pacote. 0.9.13 pode simplesmente abrir zcomponent.lpk. A IDE vai abrir o resto automaticamente.

Nota: os primeiros quatro pacotes só precisam ser compilados e não podem ser instalados.

--Forest 17:41, 2 Nov 2005 (CET)

  • 3. Se você compilar e instalar o Zeos com sucesso, mas não o Lazarus, depois de reconstruir comece com:

Zeoserror.gif

Então você pode fazer:

No arquivo Zeos.Inc substitua, na seção "// Settings for Debug mode": {$R-} por {$R+}

--Junior 19:48, 15 Apr 2006 (GMT)

Fazendo sua primeira aplicação Zeos

  • Insira no formulário o componente ZConnection para estabelecer a conexão com o banco de dados.
    • Configure no Object Inspector selecionando seu Banco de Dados "Database", seu Usuário "User", sua senha "Password", o Host, a porta "Port" e o protocolo "Protocol" (e outros parâmetros se necessário) para a conexão com o banco de dados.
    • Configure Conectado "Connected" como Verdadeiro "True".
  • Drop a ZQuery (do not mistake with ZReadOnlyQuery).
    • Set the Connection to your active ZConnection.
    • Set the Sql property to something like SELECT * FROM MyTable
    • Set Active to True.
  • Drop a DataSource from the [Data Access] tab.
    • Set the DataSet to your active ZQuery.
  • Drop a DBGrid from the [Data Controls] tab.
    • Set the Datasource to your DataSource.
    • If all is ok you should now be able to see the records from your table.

Maiores informações sobre como trabalhar com Zeos

Aqui você encontra alguns artigos explicando o uso do Zeos, alguns deles falam especificamente no uso com a linguagem Delphi, mas na maioria das vezes as mesmas técnicas podem ser usadas também no Lazarus.


Por favor complete-me :)

Possible Bugs and Issues

  1. Eu notei que às vezes, ao construir o Lazarus, ele não consegue achar alguns arquivos do Zeos. Para contornar, tente isso:
    • Vá a Components/Package Graph no menu principal .
    • Abra o pacote ZComponent .
    • Clique com o botão direito em Files.
    • Escolha [Recompile all required].
    • Quando perguntado "Re-Compile this and all required packages?" responda [Yes].
    • Recompile o Lazarus normalmente (com os pacotes).

  2. Existe um bug em FPC's AnsiStrComp que causa unreliable PChar comparison, isso é óbvio ao usar um DBGrid para editar dados, AnsiStrComp('abc', 'abcd') can't detect them as being different but it detects AnsiStrComp('abd', 'abcd') ignoring multiple chars from the second string. Este bug foi encontrado porJesusrmx. Provavelmente vai ser corrigido logo, veja Bug Report.