Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Error al conectar Base Datos FIREDAC Access en otro ordenador (https://www.clubdelphi.com/foros/showthread.php?t=96766)

alquimista 28-06-2024 18:38:08

Error al conectar Base Datos FIREDAC Access en otro ordenador
 
He hecho un app para Windows 64 bits que maneja una base de datos hecha en Access (bd.mdb) sin acceso remoto, es decir en local,y funciona a la perfección en el ordenador donde uso la versión Delphi Community 11.3.
He elegido FireDAC sobre Microsoft Access, tengo un módulo de base de datos y uso la cadena de conexión:
Código:

with dbFCT do begin
    Params.DriverID:= 'MSAcc';
    Params.Database:= 'ruta de la base de datos';

No tiene ni password ni usuario ni nada especial.


En el ordenador de Delphi funciona dentro y fuera del IDE, sin ningún tipo de problemas.Añado registros, borro, creo, actualizo y todo OK.



El problema es al portarlo a otro PC. He puesto que si no encuentra la BD que te de opción de busqueda en cualquier carpeta, etc..



He instalado ODBC de Access 64 bits para 2016, luego el de office 365 por probar otro driver pero no me funciona en otros ordenadores limpios.


El error debe de ser al buscar el driver adecuado me imagino, he intentado poner messagebox para localizar el posible error justo al abrir la bd, pero no llega ahí el programa. Me sale el siguiente error:


Exception EMSAccessNativeException in module xxxxxxxxxxxx at 0000000945257
[FireDAC][Phys][ODBC][Microsoft][Administrador de controladores ODBC] No se encuentra el nombre del origen de datos y no se especificó ningún controlador predeterminado.


Y luego dos o tres excepciones más y termina la aplicación.


No he encontrado drivers de FireDAC para equipos por separado.
Y me estoy volviendo loco. Se lo justo de BD.

He puesto en el proyecto que incluya los runtimes packages o como se diga..


He buscado y no encuentro nada que pueda arreglarlo.

manelb 29-06-2024 19:18:23

Yo he tenido problemas en algunas ocasiones con las conexiones a Acces y Excel con Firedac y este el el único driver que me funciona.

Lo he intentado con otros mas nuevos y actualizados pero este es el único que me ha funcionado siempre.

Por probar que no quede...

Supongo que no habrá problema en pasar el enlace por aquí


Un saludo a todos

Neftali [Germán.Estévez] 01-07-2024 08:46:33

Por lo que parece estás accediendo utilizando ODBC.
Un par de cosas:
1) Intentaría acceder con el driver nativo, en lugar de con ODBC. Obtendrás mayor velocidad.
2) Por otro lado, debes tener en el resto de ordenadores lo mismo que tienes en el ordenador de desarrollo. Si usas con ODBC, deberás tener ese mismo driver en el resto de ordenadores. Si lo haces con el Driver nativo deberás instalar el motor Jet 4 en el resto de equipos.

Aquí explica lo que tienes que instalar en la máquina cliente, según el driver que estés utilizando:
https://docwiki.embarcadero.com/RADS...base_(FireDAC))

alquimista 01-07-2024 11:31:11

En enlace que me pasas pone esto:
"There is currently no text in this page. You can search for this page title in other pages, or search the related logs, but you do not have permission to" create this page."

He buscado y es la página que miré...y ponía que se añadiera el enlace al driver físico añadiendo el componente FDPhysMSAccessDriverLink (¿esto se refiere a driver nativo?), donde aparecen opciones de ODBC. probando sigue sin solucionarse. Cambia el mensaje primero por otro Temporary key...
¿El Jet4 que dices son los drivers de Acces runtime?
Me falta probar el driver de manel en una máquina virtual, se me estropeó la anterior de pruebas.

Gracias por las respuestas.

Neftali [Germán.Estévez] 01-07-2024 11:56:36

Cita:

Empezado por alquimista (Mensaje 556474)
En enlace que me pasas pone esto:
"There is currently no text in this page. You can search for this page title in other pages, or search the related logs, but you do not have permission to" create this page."

Corregido el link; Lo había copiado mal.

Cita:

Empezado por alquimista (Mensaje 556474)
¿El Jet4 que dices son los drivers de Acces runtime?
Me falta probar el driver de manel en una máquina virtual, se me estropeó la anterior de pruebas.

Supongo que si.
MS Access es una aplicación de microsoft, que en realidad usa el motor de Base de Datos Jet 4.
Necesitas instalar los drivers de Jet 4 para poder utilizar ficheros MDB.

alquimista 02-07-2024 21:07:44

He instalado los drivers de Access pero sigue sin ir.
Lo de modo nativo no entiendo como hacerlo funcionar.
En la información sobre la base de datos parece indicar que FireDAC va sobre ODBC.
Usando el componente FDPhysMSAccessDriverLink no pongo info realtiva a ODCB pero si a MSAcc que es el DriverID. Funciona en el pc de delphi 11, pero sigue sin ir en otros pcs.

Primero probé en un windows 10 Home y luego en un Pro. Ahora consigue acceder a la aplicación sin dar un error crítico que antes finalizaba el programa. Pero la BD sigue sin funcionar. Encima me aparece otro error ya que uso un componente de JvRichEdit (error en MSFTEDIT.DLL, ya me empiezo a bugear yo!! :confused:)


Trozo de la info de BD de FIREDAC.



Código:

DriverID=MSAcc
Pooled=False
================================
FireDAC info
================================
Tool = RAD Studio 11.0
FireDAC = 28.0.0 (Build 106147)
Platform = Windows 32 bit
Defines = FireDAC_NOLOCALE_META;FireDAC_MONITOR
================================
Client info
================================
Loading driver MSAcc ...
  Loading odbc32.dll driver manager
  Creating ODBC environment handle
  Searching for ODBC driver ...
    Checking for ODBC driver [Microsoft Access Driver (*.mdb, *.accdb)] ...
    Checking for ODBC driver [Microsoft Access Driver (*.mdb)] ...
      Found [Microsoft Access Driver (*.mdb)]
Driver Manager version = 03.81.19041.0000
================================
Session info
================================
Current catalog =
Current schema =
Driver name = odbcjt32.dll
Driver version = 10.00.19041
Driver conformance = 3
DBMS name = ACCESS
DBMS version = 04.00.0000


alquimista 03-07-2024 19:30:44

He usado access por la comodidad de hacer la base de datos.
Si me sigue dando problemas con lo drivers ODBC, que bd me podéis recomendar donde no tenga problemas con los drivers y no sea neceario instalar controladores especiales, etc... y que por lo menos me sirvan los querys SQL que estoy usando en FIREDAC. Me imagino que habrá programas que cambien de Access a otra base de datos.
La base de datos es local y solo es mantenida por mí y si la pudiera llevar en un pendrive mejor.

alquimista 18-07-2024 22:00:25

Solucionado
 
Por si sirve a otros.

He encontrado una solución pero no sé si es la correcta, ya que he instalado muchos drivers de Microsoft y varios runtimes.
Pero lo que he hecho es copiar en los ordenadores destino los archivos exe de FireDAC FDExplorer.exe, FDAdministrator.exe y FDMonitor.exe. Aunque he usado creo FCExplorer y como administrador he creado un archivo de definiciones de conexión con la ruta de la base de datos que ha guardado en la carpeta windows y parece que todo ha funcionado.


Con respecto al error de MSFTEDIT.DLL si ejecuto como administrador el programa se soluciona (era un editor de RTF).

Neftali [Germán.Estévez] 19-07-2024 10:28:17

Cita:

Empezado por alquimista (Mensaje 556536)
He usado access por la comodidad de hacer la base de datos.


¿Y has probado a usar la Base de Datos MDB, con los componentes ADO?

Nada que configurar, simplemente la conexión.

alquimista 19-07-2024 12:10:33

Pues no sé por qué pensaba que era mejor lo de FIREDAC en el nuevo delphi CE 11.3.

ADO no da problemas en otros equipos, con los drivers?
Se podría llevar la BD incluso en un portable?

Neftali [Germán.Estévez] 19-07-2024 12:16:21

Cita:

Empezado por alquimista (Mensaje 556772)
Pues no sé por qué pensaba que era mejor lo de FIREDAC en el nuevo delphi CE 11.3.

ADO no da problemas en otros equipos, con los drivers?
Se podría llevar la BD incluso en un portable?

Se recomiendo usar FireDAC porque es una tecnología más nueva y más potente en algunos aspectos.
Pero ADO sigue funcionando muy bien. No suele tener problemas con drivers, porque el la mayoría de los Windows modernos ya vienen con el sistema.

Además, entre:
  • FireDAC + ODBC
  • ADO + Drivers nativos
No se decirte quien será más óptimo (habría que hacer pruebas).
Nosotros en nuestro sistema (que es grande) los usamos (ADO) y sigue funcionando muy bien.


La franja horaria es GMT +2. Ahora son las 21:23:33.

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