Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Error extraño en redes (III) (https://www.clubdelphi.com/foros/showthread.php?t=62928)

coso 21-01-2009 15:19:29

Error extraño en redes (III)
 
Hola de nuevo, tengo un error el cual windows vista me bloquea el modo escritura de una base de datos si esta esta abierta por una aplicación (ver post 1 y post 2), por lo que no puedo acceder a esta base de datos con la misma aplicación por red. Uso ADO y la base de datos es access. En windows xp funciona correctamente. La connection string que uso es esta:

Código Delphi [-]
function Tdm.ConnectString(s : string) : string;
begin
     ConnectString := 'Provider=Microsoft.Jet.OLEDB.4.0;' +   
          'Password="";User ID=Admin;Data Source=' + s + ';' +
          'Mode=Share Deny None;Extended Properties="";' +
          'Jet OLEDB: System database="";' +
          'Jet OLEDB: Registry Path="";' +
          'Jet OLEDB: Database Password="";' +
          'Jet OLEDB: Engine Type=5;' +
          'Jet OLEDB: Database Locking Mode=1;' +
          'Jet OLEDB: Global Partial Bulk Ops=2;' +
          'Jet OLEDB: Global Bulk Transactions=1;' +
          'Jet OLEDB: New Database Password="";' +
          'Jet OLEDB: Create System Database=False;' +
          'Jet OLEDB: Encrypt Database=False;' +
          'Jet OLEDB: Don''t Copy Locale on Compact=False;' +
          'Jet OLEDB: Compact Without Replica Repair=False;' +
          'Jet OLEDB: SFP=False';
end;

siendo s la ruta del archivo access en cuestión. Mi pregunta seria si existe algun parametro que se me haya saltado para asegurar que la base de datos se comparte (a parte del mode y el locking), o bien si es un error de los drivers, alguna actualización necesaria de ADO, algun parche o algun otro parametro de windows vista, pues no creo que sea el primero al que le haya pasado esto. Saludos de nuevo y gracias.

Chris 21-01-2009 15:42:39

Coso, por favor no andes repitiendo los hilos para hacer la misma pregunta. Deberías de leer la guía de estilo.

Saludos.

coso 21-01-2009 16:05:39

si d&w, pero esta, aunque del mismo problema, es otra pregunta: es si existen parametros extra para compartir bases de datos, por eso la he puesto como nuevo hilo

Chris 21-01-2009 16:17:12

Creo que deberías de consultar con MSDN respecto a ADO y las modificaciones que hay que hacer para conectarse a Vista. No creo que tu código tenga problemas pues te has podido venir conectando utilizando XP.

Cita:

Empezado por coso (Mensaje 334937)
Hola a todos, tengo un error muy extraño en una red de tres ordenadores: explico al detalle porque realmente es algo muy raro y no sabemos por donde tirar. Uno de estos pcs usa windows xp, el resto, windows vista. La base de datos de la aplicación (access, que se accede mediante ADO) esta actualmente en uno de los pcs que tiene windows vista. La carpeta de la base de datos esta compartida y tiene los permisos de escritura aunque, y aqui empieza lo extraño, cada vez (más bien aleatoriamente) que reinicia el pc, se coloca de nuevo como tansolo lectura,más bien, en gris. En estas condiciones desde el otro ordenador con windows vista se ve la red, pero la aplicación se cuelga (se queda colgada en el splash screen). Una vez vuelto a quitar el permiso (el gris), y reiniciando, a veces, solo a veces, la aplicación desde el otro windows vista carga correctamente. El ordenador con windows xp ve a los otros dos pcs, pero este, tambien a veces, no es visto por ninguno de los otros dos. Estamos más perdidos que un pingüino en el desierto :confused: creo que es debido a windows vista, pero hasta hace nada todo funcionaba correctamente, asi que tampoco sabemos la causa inicial. Si alguien puede arrojar algo de luz, se lo agradecería un montón. saludos.

PD: se me olvidaba, se usa Avast como antivirus.

Realmente no conozco esto de ADO, ni tampoco sé si las DBs de Access necesariamente necesitan estar alojadas en un sistema Windows; pero si no es así, y tan solo necesitas un NAS, te recomiendo que utilices Linux con Samba, o bien vuelve a instalar XP en el "Servidor". Todo lo anterior, si es que no encuentras un saloción para vista.

Saludos.

PD.:
Cita:

Empezado por coso (Mensaje 335353)
si d&w, pero esta, aunque del mismo problema, es otra pregunta: es si existen parametros extra para compartir bases de datos, por eso la he puesto como nuevo hilo

Para encontrarle una solución a un problema, es necesario hacer varias preguntas, esto no quiere decir que debas abrir un hilo para cada pregunta, sino más bien el problema debe recidir en un sólo hilo con todas sus preguntas y respuestas.

coso 21-01-2009 16:27:54

Cita:

Realmente no conozco esto de ADO, ni tampoco sé si las DBs de Access necesariamente necesitan estar alojadas en un sistema Windows; pero si no es así, y tan solo necesitas un NAS, te recomiendo que utilices Linux con Samba, o bien vuelve a instalar XP en el "Servidor". Todo lo anterior, si es que no encuentras un saloción para vista
no voy a cambiarles a Linux, evidentemente. Tendre que usar windows xp, aunque tampoco es seguro que quieran hacerlo.

Cita:

Para encontrarle una solución a un problema, es necesario hacer varias preguntas, esto no quiere decir que debas abrir un hilo para cada pregunta, sino más bien el problema debe recidir en un sólo hilo con todas sus preguntas y respuestas.
Discrepo, pues esta era una pregunta bien concreta (si existen mas parametros extra para dar los permisos para compartir), mientras que las demas eran una aproximación a localizar el problema. Hay gente que desarrolla una aplicación entera mediante ayuda del club y no hacen todas sus preguntas en el mismo hilo: si hubiese puesto de titulo : error al compartir bases de datos, ¿seria diferente?. En fin, no es cuestión de discutir una cosa asi, pues no se soluciona nada. Saludos y gracias por leer el post y las propuestas.

Chris 21-01-2009 16:43:27

Cita:

Empezado por coso (Mensaje 335364)
no voy a cambiarles a Linux, evidentemente. Tendre que usar windows xp, aunque tampoco es seguro que quieran hacerlo.

Al final, ya ese es su problema, no el tuyo. Tu simplemente das la sugerencia.

Cita:

Empezado por coso (Mensaje 335364)
Hay gente que desarrolla una aplicación entera mediante ayuda del club y no hacen todas sus preguntas en el mismo hilo

Claro, seguramente porque son problemas distintos.

Cita:

Empezado por coso (Mensaje 335364)
si hubiese puesto de titulo : error al compartir bases de datos, ¿seria diferente?

Entonces talvex "Error extraño en Redes I, II, III" no era el título más adecuado.

Cita:

Empezado por coso (Mensaje 335364)
En fin, no es cuestión de discutir una cosa asi, pues no se soluciona nada.

Mi propósito principal no era discutir, sino ayudar.

Cita:

Empezado por coso (Mensaje 335364)
Saludos y gracias por leer el post y las propuestas.

De nada. ;)

coso 21-01-2009 16:48:25

Cita:

Al final, ya ese es su problema, no el tuyo. Tu simplemente das la sugerencia.
te equivocas, pues yo soy el responsable.

Cita:

Claro, seguramente porque son problemas distintos.
o quiza no.

Cita:

Entonces talvex "Error extraño en Redes I, II, III" no era el título más adecuado.
ciertamente, eso es lo que despista, por lo que parece.

Cita:

Mi propósito principal no era discutir, sino ayudar.
bienvenida sea la ayuda :)

Cita:

De nada. ;)
:)

Neftali [Germán.Estévez] 22-01-2009 10:06:55

Cita:

Empezado por coso (Mensaje 335343)
Hola de nuevo, tengo un error el cual windows vista me bloquea el modo escritura de una base de datos si esta esta abierta por una aplicación (ver post 1 y post 2), por lo que no puedo acceder a esta base de datos con la misma aplicación por red. Uso ADO y la base de datos es access.
...
siendo s la ruta del archivo access en cuestión. Mi pregunta seria si existe algun parametro que se me haya saltado para asegurar que la base de datos se comparte (a parte del mode y el locking), o bien si es un error de los drivers, alguna actualización necesaria de ADO, algun parche o algun otro parametro de windows vista, pues no creo que sea el primero al que le haya pasado esto.

Hola Coso.
He revisado los tres hilos, y creo que los problemas no vienen datos por la conexión ADO en sí.
Tengo dos pequeños programas en D5+ADO+MDB funcionando en el despacho de un amigo con una pequeña red de 6 ordenadores; Hace un mes que el ordenador que tiene las Bases de Datos (utilizando un directorio compartido) migró a Vista Home y no recuerdo haber tenido ningun problema.
El mismo ejecutable, con las mismas configuraciones que tenía (parámetros estandard de la conexión ADO) sigue funcionando perfectamente. El resto de ordenadores (4 XP y 2 con W2000) se siguen conectando sin problemas.

Eso me hace pensar que a priori no debe ser ni de la conexión ni de Vista (al menos directamente).

* Supongo que ya has desactivado antivirus, cortafuegos y demás para comprobar.
* Otra prueba es crear en el ordenador que tiene Vista una cuenta de usuario (con el mismo nombre de usuario y password que tiene en su ordenador) para uno de los ordenadores que acceden.
* ¿Tienes Access Instalado en los XP? (no es necesario para trabajar con esta estructura) Si lo tienes, ¿Puedes abrir directamente la BD desde otro ordenador con Access y modificarla o no te deja?
* ¿Sigue pasando de forma aleatoria?
* ¿Dónde está la Base de Datos? (me refiero a directorio) ¿Estará en alguno colgando de Archivos de programa? ¿Has probado a moverla a otro? (1º dentro del Vista -otro disco, por ejemplo, o fuera de Archivos de Programa- y 2º a otro ordenador).
* ¿En qué versión de Access está el MDB?

De todas formas, lo que me desconcierta más es que sea aleatorio. Que no te pase siempre lo mismo. :confused::confused::confused::confused:

Neftali [Germán.Estévez] 22-01-2009 10:07:52

NOTA: Personalmente Coso, creo que sería mejor juntar los tres hilos, ya que hay información valiosa del problema en los tres.

coso 22-01-2009 12:23:46

Hola Neftalí

Cita:

* Supongo que ya has desactivado antivirus, cortafuegos y demás para comprobar.
Cita:

* Otra prueba es crear en el ordenador que tiene Vista una cuenta de usuario (con el mismo nombre de usuario y password que tiene en su ordenador) para uno de los ordenadores que acceden.
si, hemos ido provando combinaciones, quiza alguna se nos ha saltado. El error viene por un bloqueo, como si al estar usando un archivo, este se le pusiera unicamente el permiso lectura. Algo asi como lo que pasa con los archivos ejecutables cargados. Tambien hemos creado nuevos usuarios, siempre administradores, y ocurre lo mismo.

Cita:

* ¿Tienes Access Instalado en los XP? (no es necesario para trabajar con esta estructura) Si lo tienes, ¿Puedes abrir directamente la BD desde otro ordenador con Access y modificarla o no te deja?
Cita:

* ¿Sigue pasando de forma aleatoria?
Cita:

* ¿Dónde está la Base de Datos? (me refiero a directorio) ¿Estará en alguno colgando de Archivos de programa? ¿Has probado a moverla a otro? (1º dentro del Vista -otro disco, por ejemplo, o fuera de Archivos de Programa- y 2º a otro ordenador).

En el XP, unicamente uno. Reexplico el problema numerando los pcs:
(1) Windows Vista, con la base de datos en 'c:\base' (compartida y con todos los permisos de control total)
(2) Windows XP (con Access)
(3) Windows Vista

Si se ejecuta la aplicación en (1) o (2), en (3) ya no se puede ejecutar (ni abrirla con access en modo escritura). En cambio, se puede ejecutar simultaneamente en (1) y (2) y no hay ningun problema: el error ya esta localizado. Ocurria de manera aleatoria debido a que se iba usando el programa mientras trabajabamos. Cambiando la base de datos a 'c:\test', compartiendo y dando permisos, ocurre exactamente lo mismo

Cita:

* ¿En qué versión de Access está el MDB?
En Access 2000, aunque la verdad la aplicación permite crear las tablas y los archivos de nuevo, usando dao.dbengine.36, si hay error ADOX.Catalog, y si hay error mediante Access, con ole.

PD: Hasta hace poco, la base de datos estaba en el ordenador con windows xp, y todo iba como la seda. Tambien funcionaba con todos los pc usando xp.

coso 22-01-2009 12:43:37

Dije que cambiando a c:\test ocurria lo mismo. Falso. Cambiando a c:\test tansolo permite abrir en modo lectura desde el otro windows vista, aun estando compartida con todos los permisos correctos (control total para todos, para default, para general, y para todo lo que permite usando el 'agregar' de 'control de permisos')

Neftali [Germán.Estévez] 22-01-2009 13:23:11

Si no recuerdo mal, cuando abres la BD de Datos con Access directamente con doble Click en el explorador, la abre en modo exclusivo.
¿lo habéis tenido en cuenta?

coso 22-01-2009 14:16:07

si. Access solo lo usabamos para saber si se podia abrir en algun momento en modo escritura, o sea, para descartar que fuese algo de los permisos de la carpeta. La carpeta compartida c:\base, la que usa la aplicación, sí se podia abrir en modo escritura desde el pc 3 con access (a no ser que la aplicación estuviese funcionando) mientras que la carpeta de prueba c:\test en ningun momento se ha podido abrir en modo escritura: siempre tansolo en modo lectura (desde el pc 3, desde el pc 2, con XP, no habia ningun problema). Se supone que tiene todos los permisos :confused: en control total. No se si se tiene que hacer alguna cosa entre redes de windows vista para acceder a carpetas compartidas, ya que el problema solo es en el pc 3, estando la base de datos en el 1. Algun permiso especial o algo asi, no conozco mucho vista.

coso 23-02-2009 20:13:50

Repasando el hilo: se resolvio volviendo todos los pcs a windows xp. Saludos.


La franja horaria es GMT +2. Ahora son las 08:31:47.

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