Difference between revisions of "Zeos tutorial/pt"
(58 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
{{Zeos tutorial}} | {{Zeos tutorial}} | ||
− | == | + | == 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]]. | |
− | + | ||
− | + | '''<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> | ||
− | == | + | == Começando com o Zeos == |
− | 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. | ||
− | This is | + | * 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. | + | * 1. Mude ZplainPostgreSql81.pas para ZPlainPostgresSql8x.pas em zplain.lpk |
<Item22> | <Item22> | ||
Line 56: | Line 71: | ||
− | * 2. | + | * 2. Conserte os seguintes erros em zdbc.lpk: |
− | a. | + | a. Remova os "/" extra de "build/" (remova o que está entre as aspas) |
<SearchPaths> | <SearchPaths> | ||
Line 65: | Line 80: | ||
</SearchPaths> | </SearchPaths> | ||
− | b. | + | b. Coloque as aspas que faltam em unitname value |
<Item43> | <Item43> | ||
Line 72: | Line 87: | ||
</Item43> | </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: | |
# zcore.lpk | # zcore.lpk | ||
Line 81: | Line 96: | ||
# zdbc.lpk | # 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. | |
− | 0.9.13 | ||
− | + | 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. | + | * 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]] | ||
− | + | Então você pode fazer: | |
− | + | No arquivo Zeos.Inc substitua, na seção "// Settings for Debug mode": | |
{$R-} | {$R-} | ||
− | + | por | |
{$R+} | {$R+} | ||
--[[User:Junior|Junior]] 19:48, 15 Apr 2006 (GMT) | --[[User:Junior|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''' (<font color=red>do not mistake with ZReadOnlyQuery</font>). | * Drop a '''ZQuery''' (<font color=red>do not mistake with ZReadOnlyQuery</font>). | ||
Line 118: | 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. | ||
− | == | + | == 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.<br> | |
− | * [http://zeos.firmos.at/kb.php?mode=article&k=6 | + | * [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 | + | * [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. |
− | |||
<br> | <br> | ||
− | ''' | + | '''Por favor complete-me :)''' |
== Possible Bugs and Issues == | == Possible Bugs and Issues == | ||
− | # | + | |
− | #* | + | # 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]'''. |
− | #* Recompile Lazarus | + | #* Quando perguntado "Re-Compile this and all required packages?" responda '''[Yes]'''. |
− | # | + | #* 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 02: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.
- Certifique-se de ter a última versão do Lazarus e do último 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
<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:
- zcore.lpk
- zparsesql.lpk
- zplain.lpk
- 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:
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.
- Tutorial ZeosLib DBOs 6.1.5 - com Delphi 7 e Firebird 1.5
- Tradução e adaptação do Tutorial ZeosLib DBOs 6.1.5 - With Delphi 7 and Firebird 1.5
- Overview of the Zeos Database Objects Architecture
- Uma introdução a API ZDBC
- Verifique na seção Downloads exemplos reais que podem ser facilmente portados para o Lazarus.
Por favor complete-me :)
Possible Bugs and Issues
- 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).
- 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.