<div dir="ltr"><div><div>Maxi creo que no me di a entender, el mensaje que yo deje era la respuesta concreta para resolver ese error, lo que pasa es que la copie directamente del foro de delphi.<br><br></div>Dejo editado aqui para evitar confuciones<br>
<div>========================================================<br>El
 error quiere decir que la implementación del método "QueryInterface" 
debe ser idéntica a la declaración en la interfaz IUnknown. Si te fijas 
en la interfaz está declarada como.<div class="im"><br>
<br>Unknown.QueryInterface(constref TGuid,out <Formal type>):LongInt; StdCall<br><br></div>y en la implementación está.<div class="im"><br>function QueryInterface(const IID: TGUID; out Obj): HResult; virtual; stdcall;<br>
<br></div>así que en la implemantación debe ser suficiente con cambiar const por constref<br>
<br>========================<br><br></div>Al corregir el error anterior se produce otro mas que se soluciona de la siguiente manera<br><br>============================<br><br>Buscar alguna de estas dos lineas en zeos.inc y arriba de ellas pegar los define que estan abajo.  <br>

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

y la solución es editar el archivo ZClasses.pas como en el siguiente parche:<br>
<br>
-    function QueryInterface({$IFDEF<br>
FPC_HAS_CONSTREF}constref{$ELSE}const{$ENDIF} IID: TGUID; out Obj):<br>
HResult; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF}; virtual;<br>
-    function _AddRef: Integer; {$IFNDEF<br>
WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};<br>
-    function _Release: Integer; {$IFNDEF<br>
WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};<br>
+    function QueryInterface({$IFDEF<br>
FPC_HAS_CONSTREF}constref{$ELSE}const{$ENDIF} IID: TGUID; out Obj):<br>
HResult; {$IF (not defined(WINDOWS)) AND<br>
(FPC_FULLVERSION>=20501)}cdecl{$ELSE}stdcall{$IFEND}; virtual;<br>
+    function _AddRef: Integer; {$IF (not defined(WINDOWS)) AND<br>
(FPC_FULLVERSION>=20501)}cdecl{$ELSE}stdcall{$IFEND};<br>
+    function _Release: Integer; {$IF (not defined(WINDOWS)) AND<br>
(FPC_FULLVERSION>=20501)}cdecl{$ELSE}stdcall{$IFEND};<br>
  public<br>
    constructor Create(const Controller: IInterface);<br>
    property Controller: IInterface read GetController;<br>
@@ -89,7 +93,8 @@<br>
<div class="im">  TContainedObject = class(TAggregatedObject, IInterface)<br>
  protected<br>
</div>-    function QueryInterface({$IFDEF<br>
FPC_HAS_CONSTREF}constref{$ELSE}const{$ENDIF} IID: TGUID; out Obj):<br>
HResult; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF}; override;<br>
+    function QueryInterface({$IFDEF<br>
FPC_HAS_CONSTREF}constref{$ELSE}const{$ENDIF} IID: TGUID; out Obj):<br>
HResult; {$IF (not defined(WINDOWS)) AND<br>
(FPC_FULLVERSION>=20501)}cdecl{$ELSE}stdcall{$IFEND}; override;<br>
  end;<br>
  {$ENDIF}<br>
@@ -221,7 +226,8 @@<br>
  Result := IInterface(FController)._AddRef;<br>
end;<br>
-function TAggregatedObject._Release: Integer; {$IFNDEF<br>
WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};<br>
+function TAggregatedObject._Release: Integer; {$IF (not<br>
defined(WINDOWS)) AND<br>
(FPC_FULLVERSION>=20501)}cdecl{$ELSE}stdcall{$IFEND};<br>
<br>
<br>
[Ya arreglado en trunk 1013] Tratando de compilar la revisión 903 of<br>
ZeosDBO trunk en GNU/Linux con FPC 2.6.0 o superior, da el siguiente<br>
error en ZAbstractRODataset.pas: "Error: Expected another 2 array<br>
elements". El problema es que FPC2_1UP no está definido porque el<br>
archivo src/Zeos.inc no verifica las versiones nuevas. Si estamos<br>
usando solo versiones nuevas de FPC (2.6, 2.7 o superiores) podemos<br>
modificar src/Zeos.inc agregando las lineas siguientes justo antes de<br>
{$IFDEF VER2_5}, y el error no aparece mas.<br>
<br>
+  {$DEFINE FPC2_5UP}<br>
+  {$DEFINE FPC2_4UP}<br>
+  {$DEFINE FPC2_3UP}<br>
+  {$DEFINE FPC2_2UP}<br>
+  {$DEFINE FPC2_1UP}<br>
+  {$DEFINE FPC2_UP}<br>
+<br>
   {$IFDEF VER2_5}<br>
     {$DEFINE FPC2_5UP}<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
2013/5/6 José Mejuto <<a href="mailto:joshyfun@gmail.com">joshyfun@gmail.com</a>><br>
><br>
> El 06/05/2013 20:14, Ismael L. Donis Garcia escribió:<br>
><br>
>> Error: No matching implementation for interface method<br>
>> "IUnknown.QueryInterface(constref TGuid,out <Formal type>):LongInt;<br>
>> StdCall;" f<br>
><br>
><br>
> Hola,<br>
><br>
> <a href="http://wiki.freepascal.org/Zeos_tutorial/es#Posibles_fallos_e_incidencias" target="_blank">http://wiki.freepascal.org/Zeos_tutorial/es#Posibles_fallos_e_incidencias</a><br>
><br>
> --<br>
><br>
><br>
> _______________________________________________<br>
> Lazarus-es mailing list<br>
> <a href="mailto:Lazarus-es@lists.lazarus.freepascal.org">Lazarus-es@lists.lazarus.freepascal.org</a><br>
> <a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
<br>
<br>
<br>
<br>
</div></div><div class="im HOEnZb">--<br>
El que pregunta aprende, y el que contesta aprende a responder.<br>
<br>
No a la obsolecencia programada:<br>
<a href="http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html" target="_blank">http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html</a><br>
<br>
Linux User #495070<br>
<a href="http://domonetic.com/blog" target="_blank">http://domonetic.com/blog</a><br>
<br>
<br>
<br>
--<br>
El que pregunta aprende, y el que contesta aprende a responder.<br>
<br>
No a la obsolecencia programada:<br>
<a href="http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html" target="_blank">http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html</a><br>
<br>
Linux User #495070<br>
<a href="http://domonetic.com/blog" target="_blank">http://domonetic.com/blog</a><br>
<br>
</div><div class="HOEnZb"><div class="h5">_______________________________________________<br>
Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lists.lazarus.freepascal.org">Lazarus-es@lists.lazarus.freepascal.org</a><br>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><span style="background-color:rgb(255,255,255)"><font><span style="color:rgb(0,0,153)"><i><b>Saludos.<br><br>Jose Daboin</b></i></span></font></span><br>
</div>