Problema al conectar con .mdb


([N1] alozano) #1

Muy buenas, a ver si me podéis ayudar con una anomalía que me tiene bastante confuso.
El problema es que no encuentro el motivo por el que el proceso de la primera imagen “funciona” y el de la segunda no.

Ambos procesos son iguales, es más, son copias cuyas diferencia son el nombre de las variables y algunos cambios en el funcionamiento interno dentro del IF de si se ha establecido la conexión, el problema está al establecer la conexión, mientras que el primero se conecta, el segundo jamás se llega a conectar, siempre me muestra el mensaje de error.

La primera imagen es del proceso original creado en la nube con esta cuenta que uso para pruebas, seleccionas un fichero .mdb en local, estableces la conexión y si te conectas bien y si no muestras un mensaje. El “funciona” del principio es que por motivos que no acabo de comprender normalmente la primera vez que selecciono un fichero la conexión no se realiza bien y me muestra el mensaje, pero si vuelvo a seleccionar otro fichero todo va bien y el proceso continúa sin más problemas. Asumo que el conector no funciona bien por llámalo X la primera vez.

El problema está en que el mismo código de la segunda imagen que se aloja en el servidor de la empresa nunca llega a establecer la conexión.

Ambos procesos los ejecuto en la misma máquina, con los mismos ficheros, en las mismas rutas. Así que me venga a la cabeza a tener en cuenta es que actualmente en el servidor hay otras soluciones que usan la conexión con .mdb sin problemas, que las versiones de vServer y vClient son las mismas en uno y otro caso y no sé qué más.

He comprobado variables, incluso cambiadas algunas de ellas no fuera que alguna coincidiera con un nombre reservado, aunque creo que Velneo no tiene de estas.

Innocentia nihil probat.




([N4] eic) #2

Hola.

Lo único que se me ocurre (pero seguro que ya lo miraste y bien mirado) es comprobar si el tipo de las variables locales entre uno y otro proceso son iguales.

Pero…

Yo uso lo mismo que tú para acceder a ficheros mdb, y en la instrucción BD:Conectar no uso ninguna variable para ver si conectó o no, doy por supuesto que sí que conecta (mal hecho, lo sé, pero no lo tengo cara al cliente, sino para importaciones que hago yo mismo). Y siempre me funciona. Por eso… ¿probaste a “pasar” de esa respuesta y ver si, efectivamente, puedes acceder bien a las tablas? No vaya a ser que esa respuesta no funcione bien…


([N3] pacosatu) #3

Hola alozano.

Yo en su día también sufrí la novatada con el Driver ODBC (SQL Server) y tienes que ignorar el valor de CONECTED.

La función BD:Conectar(…) crea un subproceso que teóricamente solo se ejecuta si la conexión tiene éxito. Por lo tanto el valor de CONECTED dentro del subproceso no tiene transcedencia.

Así que hago como Fran, dentro del subproceso BD:Conectar pongo a 1 el valor de CONECTED para que en el resto de código se sepa que el subproceso se ha ejecutado correctamente.

Saludos
Paco Satué


([N1] alozano) #4

Básicamente la variable que en teoría debería indicar si se ha podido conectar o no, bastante útil para el tema de logs en procesos automáticos, no vale para nada, maravilloso :slight_smile:

Voy a probarlo en un rato y a ver que pasa, pero bueno, a ver que apañito le hago.

Esto me recuerda a la formula “opcional” de incremento de un for y los bucles infinitos gratuitos.

Muchas gracias a los dos por las respuestas y si todo va bien por la solución.