Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Ejecutable (mysql+zeoslib) (https://www.clubdelphi.com/foros/showthread.php?t=71520)

vmorillos 24-12-2010 16:53:19

Ejecutable (mysql+zeoslib)
 
Hola a todos
Estoy realizando una aplicación en Delphi 7 con mysql y componente ZeosLib.
Para crear mi ejecutable fue a Project\Options\Packages y desmarqué la opción "Built with runtime packages". Le di Ok y después Project\Built all projects.
El ejecutable que se generó lo llevé a otra máquina junto con estas dll, que leí por otro lado debía incluir en la misma carpeta que el ejecutable:

bantam.dll
idapi32.dll
idpdx32.dll
idr20009.dll
libmySQL.dll

Pero me arroja el siguiente error:
Código:

<?xml version="1.0" encoding="UTF-16"?>
<DATABASE>
<EXE NAME="pyPlaneamiento.exe" FILTER="GRABMI_FILTER_PRIVACY">
    <MATCHING_FILE NAME="bantam.dll" SIZE="101376" CHECKSUM="0xEC24A787" BIN_FILE_VERSION="1.0.0.8" BIN_PRODUCT_VERSION="1.0.0.0" PRODUCT_VERSION="01.000" FILE_DESCRIPTION="Borland Locale Engine" COMPANY_NAME="Borland International" FILE_VERSION="01.008" INTERNAL_NAME="Bantam" LEGAL_COPYRIGHT="Copyright Borland International 1998" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="1.0.0.8" UPTO_BIN_PRODUCT_VERSION="1.0.0.0" LINK_DATE="12/04/2036 03:04:04" UPTO_LINK_DATE="12/04/2036 03:04:04" />
    <MATCHING_FILE NAME="BDESetup.EXE" SIZE="4474824" CHECKSUM="0x2BCCD375" BIN_FILE_VERSION="1.0.0.0" BIN_PRODUCT_VERSION="1.0.0.0" FILE_DESCRIPTION="Borland Database Engine (BDE) Setup" COMPANY_NAME="Neal L. Park Consulting" FILE_VERSION="1.0.0.0" LEGAL_COPYRIGHT="Neal L. Park Consulting" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x10001" VERFILETYPE="0x1" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x40000" UPTO_BIN_FILE_VERSION="1.0.0.0" UPTO_BIN_PRODUCT_VERSION="1.0.0.0" LINK_DATE="08/13/2001 17:13:38" UPTO_LINK_DATE="08/13/2001 17:13:38" />
    <MATCHING_FILE NAME="idapi32.dll" SIZE="589312" CHECKSUM="0x7B02FD27" BIN_FILE_VERSION="5.2.0.2" BIN_PRODUCT_VERSION="0.0.0.0" FILE_DESCRIPTION="Borland Database Engine" COMPANY_NAME="Borland Software Corporation" FILE_VERSION="5.2.0.2" INTERNAL_NAME="IDAPI32  " LEGAL_COPYRIGHT="Copyright Borland Software Corp. 1991-2001" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="5.2.0.2" UPTO_BIN_PRODUCT_VERSION="0.0.0.0" LINK_DATE="09/18/2017 20:20:59" UPTO_LINK_DATE="09/18/2017 20:20:59" />
    <MATCHING_FILE NAME="idpdx32.dll" SIZE="255488" CHECKSUM="0xCE7C8D94" BIN_FILE_VERSION="5.2.0.2" BIN_PRODUCT_VERSION="0.0.0.0" FILE_DESCRIPTION="Borland Database Engine" COMPANY_NAME="Borland Software Corporation" FILE_VERSION="5.2.0.2" INTERNAL_NAME="IDPDX32  " LEGAL_COPYRIGHT="Copyright Borland Software Corp. 1991-2001" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="5.2.0.2" UPTO_BIN_PRODUCT_VERSION="0.0.0.0" LINK_DATE="06/23/2017 14:50:19" UPTO_LINK_DATE="06/23/2017 14:50:19" />
    <MATCHING_FILE NAME="idr20009.dll" SIZE="116736" CHECKSUM="0x383DE596" BIN_FILE_VERSION="5.2.0.2" BIN_PRODUCT_VERSION="0.0.0.0" FILE_DESCRIPTION="Borland Database Engine" COMPANY_NAME="Borland Software Corporation" FILE_VERSION="5.2.0.2" INTERNAL_NAME="IDR2  ,0009" LEGAL_COPYRIGHT="Copyright Borland Software Corp. 1991-2001" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="5.2.0.2" UPTO_BIN_PRODUCT_VERSION="0.0.0.0" LINK_DATE="01/06/2018 01:47:23" UPTO_LINK_DATE="01/06/2018 01:47:23" />
    <MATCHING_FILE NAME="libmySQL.dll" SIZE="2359296" CHECKSUM="0x5FC2D273" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="08/12/2010 21:54:15" UPTO_LINK_DATE="08/12/2010 21:54:15" />
    <MATCHING_FILE NAME="ntdll.dll" SIZE="730624" CHECKSUM="0x6A816968" BIN_FILE_VERSION="5.1.2600.5512" BIN_PRODUCT_VERSION="5.1.2600.5512" PRODUCT_VERSION="5.1.2600.5512" FILE_DESCRIPTION="DLL de la capa de Windows NT" COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Sistema operativo Microsoft® Windows®" FILE_VERSION="5.1.2600.5512 (xpsp.080413-2111)" ORIGINAL_FILENAME="ntdll.dll" INTERNAL_NAME="ntdll.dll" LEGAL_COPYRIGHT="Copyright (C) Microsoft Corporation. Reservados todos los derechos." VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0xB99AC" LINKER_VERSION="0x50001" UPTO_BIN_FILE_VERSION="5.1.2600.5512" UPTO_BIN_PRODUCT_VERSION="5.1.2600.5512" LINK_DATE="04/14/2008 02:17:59" UPTO_LINK_DATE="04/14/2008 02:17:59" VER_LANGUAGE="Español (alfabetización internacional) [0xc0a]" />
    <MATCHING_FILE NAME="pyPlaneamiento.exe" SIZE="3773440" CHECKSUM="0x6ECC7049" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="06/19/1992 22:22:17" UPTO_LINK_DATE="06/19/1992 22:22:17" />
</EXE>
<EXE NAME="kernel32.dll" FILTER="GRABMI_FILTER_THISFILEONLY">
    <MATCHING_FILE NAME="kernel32.dll" SIZE="1036800" CHECKSUM="0x4B5D905A" BIN_FILE_VERSION="5.1.2600.2180" BIN_PRODUCT_VERSION="5.1.2600.2180" PRODUCT_VERSION="5.1.2600.2180" FILE_DESCRIPTION="DLL de cliente API BASE de Windows NT" COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Sistema operativo Microsoft® Windows®" FILE_VERSION="5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)" ORIGINAL_FILENAME="kernel32" INTERNAL_NAME="kernel32" LEGAL_COPYRIGHT="Copyright (C) Microsoft Corporation. Reservados todos los derechos." VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x106088" LINKER_VERSION="0x50001" UPTO_BIN_FILE_VERSION="5.1.2600.2180" UPTO_BIN_PRODUCT_VERSION="5.1.2600.2180" LINK_DATE="08/19/2004 22:41:31" UPTO_LINK_DATE="08/19/2004 22:41:31" VER_LANGUAGE="Español (alfabetización internacional) [0xc0a]" />
</EXE>
<EXE NAME="kernel32.dll" FILTER="GRABMI_FILTER_THISFILEONLY">
    <MATCHING_FILE NAME="kernel32.dll" SIZE="1036800" CHECKSUM="0x4B5D905A" BIN_FILE_VERSION="5.1.2600.2180" BIN_PRODUCT_VERSION="5.1.2600.2180" PRODUCT_VERSION="5.1.2600.2180" FILE_DESCRIPTION="DLL de cliente API BASE de Windows NT" COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Sistema operativo Microsoft® Windows®" FILE_VERSION="5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)" ORIGINAL_FILENAME="kernel32" INTERNAL_NAME="kernel32" LEGAL_COPYRIGHT="Copyright (C) Microsoft Corporation. Reservados todos los derechos." VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x106088" LINKER_VERSION="0x50001" UPTO_BIN_FILE_VERSION="5.1.2600.2180" UPTO_BIN_PRODUCT_VERSION="5.1.2600.2180" LINK_DATE="08/19/2004 22:41:31" UPTO_LINK_DATE="08/19/2004 22:41:31" VER_LANGUAGE="Español (alfabetización internacional) [0xc0a]" />
</EXE>
</DATABASE>

Alguien podría decirme como debería generar mi ejecutable?

Muchas gracias por todo.

ElKurgan 27-12-2010 08:08:32

Pues para empezar, no deberías desmarcar la dichosa casilla. Cuando está marcada te incluye todas las librerías de Delphi que necesita tu ejecutable. Eso si, este queda de un tamaño mucho mayor.

Lo que no se es si las Zeos requieren que instales también alguna otra dll adicional, ya que no he trabajado nunca con ellas.

Un saludo

pacopenin 27-12-2010 12:50:52

Los componentes Zeos no necesitan que lleves nada. Solo es necesario que esté instalado y accesible el cliente apropiado del tipo de base de datos al que quieras acceder y con versiones iguales (o al menos compatibles). En este caso. asegúrate de tener instalado MySQL en la máquina de destino.
Al igual que ElKurgan, te recomiendo que, al menos en principio, compiles con la opción "Built with runtime packages" marcada. No es necesario ni el BDE, ni idapi, ... y si en algún momento te da error por ello, es que has incluído algo en tu aplicación que hace referencia a ellos.

Saludos,

vmorillos 27-12-2010 14:50:38

Aun no funciona
 
Hola a todos.
He seguido sus recomendaciones y he marcado "Built with runtime packages" y el ejcutado el programa (F9) y me arrojan los siguientes errores :
  • [Error] QRWebFilt.pas(65): Cannot override a static method
  • [Error] QRWebFilt.pas(70): Method 'AcceptGraphic' not found in base class
  • [Error] QRWebFilt.pas(119): Cannot override a static method
  • [Error] QRWebFilt.pas(131): Cannot override a static method
  • [Error] QRWebFilt.pas(965): Undeclared identifier: 'VertAdjust'
  • [Fatal Error] grimgctrl.pas(246): Could not compile used unit 'QRWebFilt.pas'.
Aparentemente son de quickreport, yo uso la versión 5 de este.
Una consulta a PacoPenin, cuando dices que debo asegurarme de tener instalado el MySql en la máquina destino, ¿te refieres a la PC servidor? o tal vez a la PC del cliente.

Gracias por su ayuda.

Saludos.

pacopenin 27-12-2010 15:04:12

Hola.
En las máquinas cliente, es necesario tener instalado el cliente de la base de datos. O al menos, accesible la librería correspondiente. Nunca he trabajado con MySQL pero es necesaria la librería libMySQL.dll correspondiente a la versión que tengas en el servidor.
Los otros errores, ni idea. Nunca he usado ese generador de informes.

vmorillos 27-12-2010 16:11:44

Sigue sin funcionar en el cliente
 
He tratado de registrar la dll llamada "libmySQL.dll" que he encontrado en esta dirección: "C:\Archivos de programa\MySQL\MySQL Server 5.1\bin". La copie en "c:\windows\system32\".
He usado la siguiente línea "REGSVR32 c:\windows\system32\libmysql.dll" pero me arroja el siguiente error: "Se descargó c:\windows\system32\libmysql.dll, pero no se encontró el punto de entrada DllRegisterServer"

Por favor ayuda. S:O.S.

dibe

pacopenin 27-12-2010 16:50:32

Hola.
No hace falta registrarla, solo que esté accesible. Copiala donde esté también el ejecutable. No se si la instalación de MySQL tiene una opción de instalar solo la parte cliente (como Firebird, p.e.), pero creo que con que copies esa dll debería bastar.

vmorillos 27-12-2010 16:58:54

Nada
 
Hola, he colocado en una carpeta el ejecutable y la dll, pero sigue el problema:

Código:

<?xml version="1.0" encoding="UTF-16"?>
<DATABASE>
<EXE NAME="pyPlaneamiento.exe" FILTER="GRABMI_FILTER_PRIVACY">
    <MATCHING_FILE NAME="libmySQL.dll" SIZE="2359296" CHECKSUM="0x5FC2D273" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="08/12/2010 21:54:15" UPTO_LINK_DATE="08/12/2010 21:54:15" />
    <MATCHING_FILE NAME="pyPlaneamiento.exe" SIZE="3720192" CHECKSUM="0x53072082" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="06/19/1992 22:22:17" UPTO_LINK_DATE="06/19/1992 22:22:17" />
</EXE>
<EXE NAME="kernel32.dll" FILTER="GRABMI_FILTER_THISFILEONLY">
    <MATCHING_FILE NAME="kernel32.dll" SIZE="1036800" CHECKSUM="0x4B5D905A" BIN_FILE_VERSION="5.1.2600.2180" BIN_PRODUCT_VERSION="5.1.2600.2180" PRODUCT_VERSION="5.1.2600.2180" FILE_DESCRIPTION="DLL de cliente API BASE de Windows NT" COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Sistema operativo Microsoft® Windows®" FILE_VERSION="5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)" ORIGINAL_FILENAME="kernel32" INTERNAL_NAME="kernel32" LEGAL_COPYRIGHT="Copyright (C) Microsoft Corporation. Reservados todos los derechos." VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x106088" LINKER_VERSION="0x50001" UPTO_BIN_FILE_VERSION="5.1.2600.2180" UPTO_BIN_PRODUCT_VERSION="5.1.2600.2180" LINK_DATE="08/19/2004 22:41:31" UPTO_LINK_DATE="08/19/2004 22:41:31" VER_LANGUAGE="Español (alfabetización internacional) [0xc0a]" />
</EXE>
<EXE NAME="kernel32.dll" FILTER="GRABMI_FILTER_THISFILEONLY">
    <MATCHING_FILE NAME="kernel32.dll" SIZE="1036800" CHECKSUM="0x4B5D905A" BIN_FILE_VERSION="5.1.2600.2180" BIN_PRODUCT_VERSION="5.1.2600.2180" PRODUCT_VERSION="5.1.2600.2180" FILE_DESCRIPTION="DLL de cliente API BASE de Windows NT" COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Sistema operativo Microsoft® Windows®" FILE_VERSION="5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)" ORIGINAL_FILENAME="kernel32" INTERNAL_NAME="kernel32" LEGAL_COPYRIGHT="Copyright (C) Microsoft Corporation. Reservados todos los derechos." VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x106088" LINKER_VERSION="0x50001" UPTO_BIN_FILE_VERSION="5.1.2600.2180" UPTO_BIN_PRODUCT_VERSION="5.1.2600.2180" LINK_DATE="08/19/2004 22:41:31" UPTO_LINK_DATE="08/19/2004 22:41:31" VER_LANGUAGE="Español (alfabetización internacional) [0xc0a]" />
</EXE>
</DATABASE>

Previamente he instaldo MySql en el PC cliente, ya estoy bordeando la deseperación, con la opción Developer Machine. Por cierto solo tiene tres opciones Developer Machine, Server Machine y Dedicated MySQL Server Machine.
Pero aun asi no funciona, de aqui que comienzo ha sospechar que el problema puede venir por ZeosLib. He leido que antes venia con unas DLLs (otra vez esta niñas) pero en esta versión (ZEOSDBO-6.6.6-stable) ya no las trae (que coraje).

Espero la ayuda de todos.

vmorillos 27-12-2010 17:49:18

FUNCIONÓ, milagro de navidad
 
Hice un par de cosas, no se cual de ellas fue la del milagro:
1.- Instalé los ODBC conectores de Mysql (mysql-connector-odbc-5.1.8-win32.msi).
2.- Le di los privilegios a la PC cliente
Código:

GRANT SELECT, INSERT, DELETE, UPDATE, CREATE, DROP
ON bdPlaneamiento.*
TO root@laipdelcliente
IDENTIFIED BY 'lacontraseñadelroot';

Y funcionó.

Gracias a todos por su ayuda y disculpen las molestias.

Feliz navidad y muchas bendiciones.


La franja horaria es GMT +2. Ahora son las 18:12:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi