Difference between revisions of "Zeos tutorial/pt"

From Lazarus wiki
Jump to navigationJump to search
 
(40 intermediate revisions by 3 users not shown)
Line 2: Line 2:
  
 
== Descrição ==
 
== Descrição ==
 +
[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>
 +
[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>
 +
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]].
 
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]].
<br>
+
 
<br>
 
 
'''<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>'''
 
'''<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 ==
 
== 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].
+
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 ==
 
== Instalando os componentes ==
  
 
 
Esta é uma parte um pouco complicada, assim você deve ter um pouco de paciência e ler esta parte com cuidado.  
 
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] .
 
* 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.
 
* Inicie o Lazarus.
  
# Use '''Components/Open Package File(.lpk)''' from the main menu.
+
# Opção '''Componentes/Open Package File(.lpk)''' no menu principal.
# Go to '''zeosdbo_rework\packages\lazarus\''' and open '''zcomponent.lpk'''
+
# 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
# Press '''[Compile]''' only if you don't want to install the components into the IDE
+
# Pressione '''[Compilar]''' em cada pacote ( janela aberta )
# Press '''[Install]'''
+
# Pressione '''[Instalar]''' na janela zcomponent.lpk
# You are asked if you want to recompile Lazarus.  
+
# Você será perguntado se deseja recompilar o lazarus.  
* Answer '''[Yes]''' this time.
+
* Responda '''[Sim]''' .
* Wait until compilation ends, Lazarus should restart itself after that.
+
* Espere até a compilação concluir, Lazarus reiniciará em seguida.
* If all is ok you should now be able to see the '''[Zeos Access]''' tab in the Component Palette.
+
* Se tudo ocorrer bem você deverá ver agora a aba de [acesso da lib Zeos] na Paleta de componentes.  
 
+
If you receive the error "Cannot find unit ZClasses" or something similar, then you need to carefully check the case of the filenames in your Zeos source distribution.
+
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.  
* Even if the cases match exactly, the autogenerated package source file can generate the wrong case name in the uses clause (Lazarus 0.9.18), i.e.:
 
  
 +
* 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 file was automatically created by Lazarus. Do not edit!
Line 47: Line 50:
 
   end.           
 
   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:
* Notice that Lazarus has named the unit ZClasses Zclasses, resulting in a naming conflict. Presumably this is a bug in Lazarus, not the Zeos packages. One way around this is to rename all the zeos source files to lowercase. Trawl through each subdirectory under src/ and execute this command in a bash window:
 
  
 
   rename -v 'y/A-Z/a-z/' *
 
   rename -v 'y/A-Z/a-z/' *
  
* Then, in Lazarus, reopen the package (.lpk) and fix the filename cases by clicking on "More..."/"Fix Files Case"
+
* Depois, no Lazarus, reabra o pacote (.lpk) e conserte o nome do arquivo clicando em "More..."/"Fix Files Case".
* The package should compile now.
+
* O pacote deverá compilar.
  
== Comments ==
+
== Comentários ==
  
Currently Zeos CVS for Lazarus has broken packages.
+
Atualmente o CVS do Zeos para Lazarus tem pacotes quebrados. Alguns comentários do IgD:
Some comments from IgD:
 
  
Using a fresh install of Laz 0.9.12 (latest stable version) I was able to install ZeosLib dated 13 Oct 05. First fix the following bugs in ZeosLib:
+
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. Change ZplainPostgreSql81.pas to ZPlainPostgresSql8x.pas in zplain.lpk
+
* 1. Mude ZplainPostgreSql81.pas para ZPlainPostgresSql8x.pas em zplain.lpk
 
   
 
   
 
  <Item22>
 
  <Item22>
Line 70: Line 71:
 
   
 
   
  
* 2. Fix the following typos in zdbc.lpk:
+
* 2. Conserte os seguintes erros em zdbc.lpk:
  
a. Remove extra "/" from "build/" (remove the one that is inside the quotes)
+
a. Remova os "/" extra de "build/" (remova o que está entre as aspas)
  
 
  <SearchPaths>
 
  <SearchPaths>
Line 79: Line 80:
 
  </SearchPaths>
 
  </SearchPaths>
 
   
 
   
b. Add missing quote to unitname value
+
b. Coloque as aspas que faltam em unitname value
  
 
  <Item43>
 
  <Item43>
Line 86: Line 87:
 
  </Item43>
 
  </Item43>
  
Now, here are the installation instructions:
+
Aqui estão as instruções de instalação:
  
Before Lazarus 0.9.13 you must open each of the zeos packages via Components/Open Package File in the following order:
+
Antes do Lazarus 0.9.13 você precisa abrir cada um dos pacotes por Components/Open Package File na seguinte ordem:
  
 
# zcore.lpk
 
# zcore.lpk
Line 95: Line 96:
 
# zdbc.lpk
 
# zdbc.lpk
  
Then finally open zcomponent.lpk and compile and install this package.
+
Finalmente abra zcomponent.lpk, compile e instale este pacote. 0.9.13 pode simplesmente abrir zcomponent.lpk. A IDE vai abrir o resto automaticamente.
0.9.13 can simply open zcomponent.lpk. The IDE will open the rest automatically.
 
  
Note: The first four packages only need to be compiled and cannot be installed.
+
Nota: os primeiros quatro pacotes só precisam ser compilados e não podem ser instalados.
  
 
--[[User:Forest|Forest]] 17:41, 2 Nov 2005 (CET)
 
--[[User:Forest|Forest]] 17:41, 2 Nov 2005 (CET)
  
* 3. If you compile and install with sucessfull Zeos, but Lazarus, after rebuilded, start with:
+
* 3. Se você compilar e instalar o Zeos com sucesso, mas não o Lazarus, depois de reconstruir comece com:
 
[[Image:Zeoserror.gif]]
 
[[Image:Zeoserror.gif]]
  
Then you can do:
+
Então você pode fazer:
  
In Zeos.Inc file replace, in section "// Settings for Debug mode":
+
No arquivo Zeos.Inc substitua, na seção "// Settings for Debug mode":
 
{$R-}
 
{$R-}
to
+
por
 
{$R+}
 
{$R+}
  
 
--[[User:Junior|Junior]] 19:48, 15 Apr 2006 (GMT)
 
--[[User:Junior|Junior]] 19:48, 15 Apr 2006 (GMT)
  
== 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 132: 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 The ZeosLib DBOs 6.1.5 - With Delphi 7 and Firebird 1.5]
+
* [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=4 Overview of the Zeos Database Objects Architecture]
* [http://zeos.firmos.at/kb.php?mode=article&k=5 An Introduction To ZDBC API]
+
* [http://zeos.firmos.at/kb.php?mode=article&k=5 Uma introdução a API ZDBC]
* Also check the [http://zeos.firmos.at/downloads.php Downloads] section for real examples wich can be easily ported to Lazarus.
+
* Verifique na seção [http://zeos.firmos.at/downloads.php Downloads] exemplos reais que podem ser facilmente portados para o Lazarus.
  
 
<br>
 
<br>
'''Please complete me :)'''
+
'''Por favor complete-me :)'''
  
 
== Possible Bugs and Issues ==
 
== Possible Bugs and Issues ==
  
# I have noticed that somethimes when building 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''' .
#* Choose '''[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.