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)
-   -   Programa que no funciona en red (https://www.clubdelphi.com/foros/showthread.php?t=7241)

Letty 09-02-2004 17:14:46

Programa que no funciona en red
 
Hola!:
Tengo un programa hecho en Delphi 6 con tablas en formato Paradox. El programa funciona perfectamente pero resulta que si están dos ordenadores en red e intentas abrir el programa (que está compartido) desde un ordenador de la red, no lo abre y muestra el panel de envío de informes de errores (en un sistema operativo Windows XP). ¿Alguien me puede decir por qué sucede esto? Yo creía que un programa con tablas Paradox se podía ejecutar perfectamente en red... ¿tengo k hacer algo de más? Ayudadme por favor. Gracias y hasta pronto.

__cadetill 09-02-2004 17:16:59

Te recomiendo la lectura de este artículo que está en esta misma web

Letty 27-02-2004 13:40:05

Sigo estando dudosa
 
Holas!:
He leído varios artículos y temas sobre esto pero no me sale. ¿Cómo le hago para que nada más empezar no me de el error ‘Directory is busy? Ayudadme por favor.

jachguate 27-02-2004 16:34:23

Pues yo ya leí el artículo (nunca he usado paradox) y ya se cual es tu problema.....

Mi problema es que no me gusta hacer el trabajo de los otros, así que te recomiendo que leas de nuevo el artículo, y si tenes alguna duda puntual, pues volve al hilo y si puedo ayudarte en algo, con mucho gusto lo hare.

Hasta luego.

;)

Letty 02-03-2004 17:19:03

A ver, yo me leí el artículo pero es que no sé como se hace para mirar si hay o no hay usuarios, que creo que es lo que hay que hacer al iniciar el programa. Otra de las cosas es que no sé en que momento justo habría que hacerlo.
Yo no estoy pidiendo que me hagan las cosas por mi, solo estoy pidiendo un poco de ayuda para algo que en mi vida vi y que no entiendo muy bien.
Por otro lado, empecé por hacer lo que pone en el artículo de paradox en red en el oncreate del data module y me da este error al activar la sesión.

Project proyecto.exe raised exception class EDBEngineError with message ‘Network initialization failed.
Unknown internal operating system error.
File: \\LETTY\BD\NET\PDOXUSRS.NET
Directory: \\LETTY\BD\NET\’.Process stopped. Use Step or Run to continue.

¿podrían ayudarme por favor?

jachguate 02-03-2004 17:26:49

Y existe el recurso de red \\letty\bd\net?

El usuario que corre el programa tiene permisos de lectura/escritura sobre él?

No tenes que verificar si ya hay o no usuarios. Paradox se encarga de llevar un registro de los bloqueos a nivel de registro para permitir el acceso concurrente (que es lo que el artículo explica). Simplemente todos los programas (o el mismo en diferentes equipos) que ataquen la base de datos tienen que basarse en el mismo archivo de bloqueos...

Hasta luego.

;)

Letty 02-03-2004 18:08:02

Antes de nada muchas gracias por responder.
En cuanto a si existe ese recurso... a ver.. si mi equipo en la red se llama letty y yo tengo una carpeta BD que la comparto para todos los usuarios con control total y dentro de esta hay otra tambien compartida que se llama net... no debería estar listo ya?.

Cito: "El remedio es verificar que hay usuarios conectados y antes de abrir las tablas comprobar la existencia de tales ficheros, si no hay usuarios y los ficheros están el directorio nuestra aplicación deberá ser lo suficientemente inteligente para borrarlos y olvidares del tema" del articulo en cuestión. Entonces no entiendo esta parte.... para que no de lo de busy no hay que mirar si hay o no usuarios? perdona si soy cortita pero es que no saco más de la cabeza! :( :confused:

jachguate 02-03-2004 18:30:28

Como ya te dije antes, nunca he usado Paradox. Sin embargo el problema del "Directory is Busy" se resuelve apuntando a todos los usuarios al mismo archivo de bloqueos.

Si este archivo de bloqueos se queda desactualizado por alguna razón (digamos la caida de los usuarios) y el propio paradox no lo detecta... eso es harina de otro costal (y tema de otro hilo) y yo considero que también una seria limitante del producto.

Hasta luego.

;)

Lepe 02-03-2004 18:47:01

Project proyecto.exe raised exception class EDBEngineError with message ‘Network initialization failed.
Unknown internal operating system error.

Creo entender que en tu ordenador (el de desarrollo no tienes red), por eso da el fallo. Windows XP REQUIERE QUE LA RED ESTÉ ACTIVA Y FUNCIONANDO.

Solución: el que actua como "servidor" accede al recurso compartido como : C:\bd y c:\bd\net el otro con rutas UNC:


Directory is busy ---> Lo que ya te han dicho. Borra los archivos a mano la primera vez y punto. despues si funcionará.

Solucion para todos los errores de este tipo: Create un "Log de inicio de sesion" en un simple fichero de texto, para saber por donde anda el programa jugueteando.

IMPORTANTEEE:

antes de compilar la version final para llevarla al cliente, ASEGURATE de que el objeto Session no esta activo, y tampoco el Tdabase asociado. (Se pone a activo cada vez que le das doble clic a un Ttable, por ejemplo).

Cita:

-------------------------------
INICIO DE SESION
-------------------------------
02/03/2004 18:42:45 >> 1 Configurar la sesion
02/03/2004 18:42:45 >> 1.1 Usando Carpeta de Red: D:\BD\NET
02/03/2004 18:42:45 >> 1.2 Usando carpeta temporal: C:\WINDOWS\TEMP
02/03/2004 18:42:45 >> 1.3 Modo Sesion: cmAll
02/03/2004 18:42:46 >> 1.4 Modo servidor: Si
02/03/2004 18:42:46 >> 2 Alias
02/03/2004 18:42:46 >> 2.1 Creando Alias: TSRG para la carpeta:D:\BD
02/03/2004 18:42:46 >> 3 Configurar Base de datos:
02/03/2004 18:42:46 >> 3.1 Asignando Controlador
02/03/2004 18:42:46 >> 3.2 Carpeta de Base de Datos: D:\BD
02/03/2004 18:42:46 >> 3.1 Asignado Alias a la Base de Datos.
02/03/2004 18:42:46 >> 4 Alias: TSRG
02/03/2004 18:42:46 >> 4.1 Alias asignado
02/03/2004 18:42:46 >> 5 Sesion Activa
02/03/2004 18:42:46 >> 6 **Conectado a Base de Datos**
Abriendo Clientes
Abriendo Albaranes
Abriendo Tarifas
Abriendo Login
Abriendo Adicional
Abriendo Frases
Abriendo Facturas
Abriendo FactAlb
Abriendo Ciudades
Abriendo ClientesH
Abriendo AlbaranesH
Abriendo FacturasH
Abriendo FactAlbH

jachguate 02-03-2004 18:51:22

No uso windows XP. Pero no debieras tener problemas para acceder a los recursos de tu máquina usando rutas UNC... no está de mas hacer la prueba, pero sería una razón mas para aborrecer al güindos, no???

Letty 02-03-2004 19:08:42

Muchas gracias a los dos :) Realmente el problema es que yo no estoy en una red y no me había dado cuenta de que así no iría. Hasta pronto.

Lepe 02-03-2004 19:14:13

Cita:

Empezado por Letty
Muchas gracias a los dos :) Realmente el problema es que yo no estoy en una red y no me había dado cuenta de que así no iría. Hasta pronto.

Experiencia propia jejejejeje

Letty 02-03-2004 20:04:30

Ahora me va bien, con asignamiento de netfiledri y privatedir en el oncreate del dtmod y asignamiento de params de la bd tambien en el oncreate y luego en el proyecto después de crear todos los formularios activo sesión, conecto bd y activo todas las tablas.... me sale esto:

"project proyecto.exe raised exception class EDBEngineError with message 'File or directory does not exist.
File: PDOXUSRS.NET. Process stopped.... "

Ahora en teoría me pilla lo de la red, será al estar conectada a internet supongo. Perdonad las molestias chicos que a esto sí que se le puede llamar ser pesada. :(

jachguate 02-03-2004 20:47:23

Cita:

Empezado por Letty
File or directory does not exist

Bastante claro, no??????

:confused: :eek:

Letty 02-03-2004 20:55:57

¿Pero no se supone que el archivo lo crea el propio programa? el directorio sé fijo que está bien porque puse un archivo en el, le di instruccion de borrarlo y me lo hizo bien... así k lo que es directorio lo pillla fijo.

Lepe 03-03-2004 05:02:22

no estarás intentando borrar el archivo cuando lo está usando el programa no?

Ten cuidado que el IDE de Delphi tambien abre una instancia y crea archivos .net (en principio en otros directorios.... en principio)

Haz un ShowMessage a diestro y siniestro.

Yo ese apartado de borrar los .net y lck me lo salté. ese dia tenia cosas que hacer y no fui a clase :p Por cierto, mi programa lleva funcionando en red varios meses y no me han llamado por ese tema.

Consejo: Usa rutas del tipo c:\BD mientras estes en casa. estes en internet, o sacando al perro a pasear :D

Saludos


La franja horaria es GMT +2. Ahora son las 03:56:16.

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