Difference between revisions of "Zeos tutorial/pt"

From Lazarus wiki
Jump to navigationJump to search
Line 142: Line 142:
 
== 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 aruqivos 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].

Revision as of 19:58, 10 May 2007

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 pelo Professor Paulo do Amaral Costa. 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 aruqivos 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.