Ismael no puede vavegar por internet. reposteo el contenido sin imagenes
Instalando los componentes
Esta es una parte complicada por lo que debes tener un poco de paciencia y leer este apartado cuidadosamente.
Comprueba que tienes al menos la versi�n 1.0.4 de Lazarus (diciembre
2012) y al menos la versi�n 7.0.3 estable de ZeosLib.
Comenzar una instancia de Lazarus.
Pulsar en Paquete/Abrir archivo de paquete (.lpk) desde el men� principal. Ve a .\ZEOSDBO-7.0.3-stable\packages\lazarus y abre zcomponent.lpk Presiona [Compilar] solamente si no necesitas instalar los componentes en el IDE.
Presiona [Usar >>] para ver las opciones que ofrece. Selecciona Agregar al Proyecto si no quieres a�adirlo al IDE o bien Instalar para que se a�ada a la solapa del IDE de Lazaus Pregunta si necesitas recompilar Lazarus, en concreto con el mensaje emergente El paquete "zcomponent 7.0" se marc� para instalar. Actualmente lazarus solo soporta paquetes enlazados est�ticamente. La instalaci�n completa necesita reconstruir y reiniciar lazarus �Desea reconstruir ahora Lazarus?
Responde [Si] esta vez.
Espera a que la compilaci�n termine, la ventana emergente de mensajes nos va mostrando la evoluci�n del proceso, Lazarus deber�a reiniciarse despu�s de esto.
Si todo est� bien se deber�a ver la solapa [Zeos Access] en la paleta de componentes.
Si se presenta el error "Cannot find unit ZClasses" o algo similar, entonces hay que chequear cuidad�samente como est�n escritos los nombres de fichero (en cuanto a may�sculas/min�sculas) en sus ficheros de c�digo fuente.
Incluso si cuadran exactamente, el paquete autogenerado del fichero fuente puede dar lugar a un tipificado incorrecto
(may�sculas/min�sculas) en la cla�sula "uses" (Lazarus 0.9.18), i.e.:
Si lo anterior falla, tal como se explica en el foro de ZeosLib es conveniente ir compilando cada uno de los paquetes siguiendo el siguiente orden:
- 1�. zcore.lpk
- 2�. zparsesql.lpk
- 3�. zplain.lpk
- 4�. zdbc.lpk
- 5�. zcomponent.lpk
Si el resultado de la compilaci�n individual de todos es correcto, entonces ya estar�amos en condiciones de escoger el paquete Zcomponent y con la opci�n de Usar >>> y a continuaci�n Instalar tenerlo en nuestro IDE como una solapa m�s de componentes visuales.
{ Este fichero ha sido generado autom�ticamente por Lazarus. �No se debe editar!
Esta fuente solo se utiliza para compilar e instalar el paquete. }
unit Zcore;
interface
uses
Zclasses, Zcollections, Zcompatibility, Zexprparser, Zexprtoken,
Zexpression,
Zfunctions, Zmatchpattern, Zmessages, Zsysutils, Ztokenizer, Zvariables,
Zvariant;
implementation
end.
F�jate que Lazarus ha renombrado la unit ZClasses como Zclasses, dando lugar a un conflicto de nombres. Presumiblemente este es un error en Lazarus, no de los paquetes Zeos. Un camino a seguir para solucionarlo es renombrar todos los ficheros fuente de Zeos a min�sculas. Accede a cada subdirectorio bajo src/ y ejecuta este mandato en una ventana de bash (shell) de windows:
rename -v 'y/A-Z/a-z/' *
Entonces, en Lazarus, reabre el paquete (.lpk) y corrige el nombre de fichero (may�sculas/min�sculas) seleccionando en "More..."/"Fix Files Case"
El paquete deber�a poderse compilar entonces.
Comentarios
En el momento actual Zeos CVS para Lazarus tiene paquetes rotos. Algunos comentarios de IgD:
Utilizando una instalaci�n limpia de Lazarus 0.9.12 (�ltima versi�n estable) fu� capaz de instalar ZeosLib (13 Octubre 2005). Primero corrige los siguientes errores en ZeosLib:
1. Cambia ZplainPostgreSql81.pas a ZPlainPostgresSql8x.pas en zplain.lpk
<Item22>
<Filename Value="../../src/plain/ZPlainPostgreSql81.pas"/> <UnitName Value="ZPlainPostgreSql8x"/>
</Item22>
2. Fix the following typos in zdbc.lpk:
a. Remove extra "/" from "build/" (remove the one that is inside the quotes)
<SearchPaths>
<OtherUnitFiles Value="../../src/dbc/"/>
<UnitOutputDirectory Value="build/"/>
</SearchPaths>
b. Add missing quote to unitname value
<Item43>
<Filename Value="../../src/dbc/ZDbcASA.pas"/>
<UnitName Value="ZDbcASA/>
</Item43>
Ahora, aqu� est�n las instrucciones de instalaci�n:
Antes de la versi�n 0.9.13 de Lazarus era necesario abrir cada uno de los paquetes de Zeos a trav�s de Paquetes/Abrir Paquete en el siguiente orden:
zcore.lpk
zparsesql.lpk
zplain.lpk
zdbc.lpk
Entonces finalmente abre zcomponent.lpk para compilarlo e instalarlo. En Lazarus 0.9.13 > solamente puede abrir zcomponent.lpk. El IDE abrir� el resto autom�ticamente.
Nota: los cuatro primeros paquetes solamente necesitan ser compilados y no pueden ser instalados.
--Forest 17:41, 2 Nov 2005 (CET)
3. Si compilas e instalas Lazarus con �xito, pero despu�s de compilarse, comienza con:
Entonces se puede hacer:
Dentro del fichero Zeos.Inc reemplazar, en la secci�n "// Settings for Debug mode": {$R-} a {$R+}
--Junior 19:48, 15 Apr 2006 (GMT)
Si a�n as� despu�s de mostrar un error no recuperable que permita arrancar Lazarus, nos queda la alternativa de buscar el fichero ejecutable tal como estaba antes de compilar todo y que figura como lazarus.old.exe
Hacer la primera aplicaci�n Zeos
Sit�a un componente ZConnection en el formulario.
Establecer las propiedades de User, Password, Host, Port y Protocol (y cualquier otro par�metro que se necesite).
Establecer la propiedad "Set Connected" con el valor True.
Sit�a un componente ZQuery en el formulario (cuidado con confundirlo con ZReadOnlyQuery).
Establecer la propiedad "Connection" al valor de ZConnection activo. Establecer la propiedad Sql a algo similar a SELECT * FROM MyTable (selecciona todo el contenido de la tabla especificada de la base de datos que se haya abierto previamente, es una sentencia SQL). Establecer la propiedad "ACTIVE" al valor True.
Sit�a un componente DataSource de la solapa [Data Access].
Establecer la propiedad "DataSet" con valor igual a la ZQuery activa.
Sit�a un componente DBGrid de la solapa [Data Controls].
Establece el par�metro Datasource con el valor DataSource. Si todo est� bien se deber�an ver los registros rellenos con datos en la tabla.
M�s informaci�n sobre como trabajar con Zeos
En los siguientes enlaces se pueden encontrar art�culos realmente �tiles explicando el uso de Zeos y su uso interno, alguno de los cuales adem�s tratan adem�s sobre materias espec�ficas de Delphi pero que pueden ser utilizadas con Lazarus tambi�n.
Tutorial en espa�ol de Zeos+Lazarus+Sqlite:
ZeosLib DBOs 6.1.5 - con Delphi 7 y Firebird 1.5
Descripci�n de la arquitectura de los objetos de ZeosDB Una introducci�n a la API de ZDBC
Tambi�n chequea la secci�n Downloads para encontrar ejemplos reales que pueden ser f�cilmente portados a Lazarus.
Por favor completar esto :)
Posibles fallos e incidencias
He notado que en algunas ocasiones cuando se construye Lazarus no es capaz de encontrar algunos ficheros de Zeos, como un m�todo r�pido puedes probar esto:
Use Components/Package Graph from the main menu.
Abre el paquete ZComponent.
Right Click on the Files item in the list.
Selecciona [Recompile all required].
Cuando pregunte "Re-Compile this and all required packages?" responder [Yes]. Recompila Lazarus normalmente (con paquetes).
Hay un error en FPC's AnsiStrComp que causa comparaci�n no fiable PChar, esto es obvio cuando se utiliza DBGrid para editar datos, AnsiStrComp('abc', 'abcd') no puede detectarlo ya que son diferentes pero detectaAnsiStrComp('abd', 'abcd') ignorando m�ltiples caracteres de la segunda cadena. Este error fue encontrado por Jesusrmx. Este error probablemente ser� subsanado pronto, ver Bug Report.
[Ya arreglado en trunk 1013] Tratando de compilar la revisi�n 903 de ZeosDBO trunk (20110806) sobre GNU/Linux amd64 x86_64 da errores en el archivo ZClasses.pas como los siguientes:
Error: No matching Implementation for interface method "IUnknown.QueryInterface (constref TGuid, out <Formal type>) LongInt; Cdecl;"
El problema se debe a cambios en FPC relacionados con la compatibilidad entre plataformas
(http://wiki.freepascal.org/User_Changes_2.6.0#IInterface.QueryInterface.2C_._AddRef_and_._Release_definitions_have_been_changed) y la soluci�n es editar el archivo ZClasses.pas como en el siguiente parche:
- function QueryInterface({$IFDEF
FPC_HAS_CONSTREF}constref{$ELSE}const{$ENDIF} IID: TGUID; out Obj): HResult; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF}; virtual;
- function _AddRef: Integer; {$IFNDEF
WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
- function _Release: Integer; {$IFNDEF
WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
+ function QueryInterface({$IFDEF
FPC_HAS_CONSTREF}constref{$ELSE}const{$ENDIF} IID: TGUID; out Obj): HResult; {$IF (not defined(WINDOWS)) AND
(FPC_FULLVERSION>=20501)}cdecl{$ELSE}stdcall{$IFEND}; virtual;
+ function _AddRef: Integer; {$IF (not defined(WINDOWS)) AND (FPC_FULLVERSION>=20501)}cdecl{$ELSE}stdcall{$IFEND};
+ function _Release: Integer; {$IF (not defined(WINDOWS)) AND (FPC_FULLVERSION>=20501)}cdecl{$ELSE}stdcall{$IFEND};
public
constructor Create(const Controller: IInterface);
property Controller: IInterface read GetController;
@@ -89,7 +93,8 @@
TContainedObject = class(TAggregatedObject, IInterface)
protected
- function QueryInterface({$IFDEF
FPC_HAS_CONSTREF}constref{$ELSE}const{$ENDIF} IID: TGUID; out Obj): HResult; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF}; override;
+ function QueryInterface({$IFDEF
FPC_HAS_CONSTREF}constref{$ELSE}const{$ENDIF} IID: TGUID; out Obj): HResult; {$IF (not defined(WINDOWS)) AND
(FPC_FULLVERSION>=20501)}cdecl{$ELSE}stdcall{$IFEND}; override;
end;
{$ENDIF}
@@ -221,7 +226,8 @@
Result := IInterface(FController)._AddRef;
end;
-function TAggregatedObject._Release: Integer; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
+function TAggregatedObject._Release: Integer; {$IF (not defined(WINDOWS)) AND
(FPC_FULLVERSION>=20501)}cdecl{$ELSE}stdcall{$IFEND};
[Ya arreglado en trunk 1013] Tratando de compilar la revisi�n 903 of ZeosDBO trunk en GNU/Linux con FPC 2.6.0 o superior, da el siguiente error en ZAbstractRODataset.pas: "Error: Expected another 2 array elements". El problema es que FPC2_1UP no est� definido porque el archivo src/Zeos.inc no verifica las versiones nuevas. Si estamos usando solo versiones nuevas de FPC (2.6, 2.7 o superiores) podemos modificar src/Zeos.inc agregando las lineas siguientes justo antes de {$IFDEF VER2_5}, y el error no aparece mas.
+ {$DEFINE FPC2_5UP}
+ {$DEFINE FPC2_4UP}
+ {$DEFINE FPC2_3UP}
+ {$DEFINE FPC2_2UP}
+ {$DEFINE FPC2_1UP}
+ {$DEFINE FPC2_UP}
+
{$IFDEF VER2_5}
{$DEFINE FPC2_5UP}
2013/5/6 Jos� Mejuto <joshyfun en gmail.com>
Show quoted text 19 lines