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)
-   -   Donde y cuando se crea el PDOXUSRS.LCK? (https://www.clubdelphi.com/foros/showthread.php?t=28730)

elcigarra 30-12-2005 02:10:21

Donde y cuando se crea el PDOXUSRS.LCK?
 
Estoy probando una aplicación Delphi 7 que usa BDE con Paradox. En mi PC (Windows XP y el D7 instalado) funciona bárbaro pero cuando quiero instalar el ejecutable en otro PC me dá el clásico error:
Directory is controlled by other .NET file. No uso nada de redes ni nada, por ahora, es decir que no hay otra aplicación sobre estas tablas.

Por otra parte, luego de leerme algunos miles de páginas;) web con explicaciones y trucos sobre este tipo de errores me apersoné de nuevo en mi PC para ver cuando y como se creaban los ficheros siempre problemáticos PSOXUSRS.NET y PDOXUSRS.LCK. Sin embargo este segundo no lo encuentro ni en el PrivateDirectory ni en el NetFileDirectory ni en el de las tablas ni en el de la aplicación. No lo encuentro ni siquiera con todas las tablas abiertas y una de ellas en Status tsEdit.

Elguien sabe donde puede estar o porqué funciona en algunas máquinas y en otras no?.

Por último, el instalador de la aplicación instala también el MergeModule del BDE en la otra máquina.

Lepe 30-12-2005 10:14:04

Si no usas redes, entonces el archivo que menciona no se crea. El BDE solamente lo crea cuando existe una red física instalada y funcionando.

Para el error que te dá. Asegurate que el Tsession, TDatabase, tablas y consultas no están activas (Connected:= false y active:= False). Mira que no esté ejecutándose Delphi ni el Database Desktop, ya que se interpreta como otro usuario del sistema.

Por supuesto, revisa que todas las tablas / consultas apunten al mismo SessionName que el TSession que tengas, o que al menos, tengan en su propiedad "Default" si no usas TSession. En el caso de que una de las tablas / consultas tenga un valor distinto, te puede dar ese error.

Saludos.

elcigarra 30-12-2005 17:18:20

Gracias, lo probaré así.

elcigarra 03-01-2006 01:39:41

Lamento volver
 
Luego de otras pruebas tengo que volver a decir que el problema no se ha solucionado. Para ser prolijo te cuento lo siguiente:

a) Al instalar le creo una carpeta al instalante. A saber [INSTALLDIR]\Net

b) las tablas estarán en [INSTALLDIR]\tablas

c) en el procedimiento OnCreate del form principal (donde están el TSession y las tablas) busco los archivos PDOXUSRS.NET, PDOXUSRS.LCK y PARADOX.LCK y si están los borro:

d) en el mismo procedimiento:
Session1.PrivateDir:=ExtractFilePath(Application.EXEName) + 'Net';
Session1.NetFileDir:=ExtractFilePath(Application.EXEName) + 'Net';

En mi PC anda bárbaro pero en el PC de quien lo instalo, me da el error mencionado (Directory is controlled by other .Net file) y agrega abajo el mensajE.
Dir: .......\Net (en los puntitos pone el path del programa, logicamente)
File: ......\tablas

Si en este punto miro las carpetas tengo:
carpeta ...\tablas : PDOXUSRS.LCK y PARADOX.LCK
carpeta ...\Net: PDOXUSRS.LCK y PDOXUSRS.NET

En este punto yo preguntaría además porqué el BDE me usa la carpeta "...\tablas" si yo no se la di como valor en ninguna de sus dos propiedades (NetFileDir ni PrivateDir)

No tengo instalado Delphi ni Database Desktop ni una red ni istalada ni funcionando ni tarjeta de red en el PC que estoy instalando el program. El BDE lo instala el instalador mío (hecho con installshield).

Lepe 03-01-2006 11:46:50

- Si no has especificado donde estan las tablas, el BDE las intentará buscar donde lo tienes puesto en tiempo de diseño, porque en tu ordenador, si le habrás puesto la ruta en algun sitio, normalmente será en el DatabaseName de los TTables, tquery, etc. Si ahora la estructura de carpetas es distinta (basta que la ruta tenga una letra de más o de menos), con razón da el error mencionado.

- Por otro lado no dejas claro si estas creando un alias con el BDE ADMINISTRATOR. En principio no hace falta si le das la ruta en el DatabaseName, pero si mezclas ambos conceptos, puede haber problemas.

Cita:

Empezado por elcigarra
d) en el mismo procedimiento:
Session1.PrivateDir:=ExtractFilePath(Application.EXEName) + 'Net';
Session1.NetFileDir:=ExtractFilePath(Application.EXEName) + 'Net';

No debe ser la misma carpeta:
Código Delphi [-]
Session1.PrivateDir:='c:\temp'; 
Session1.NetFileDir:=ExtractFilePath(Application.EXEName) + 'Net';

- ¿El PC de destino que windows tiene? Al instalarlo en "Archivos de programa", puede que la ruta de más de 8 carácteres esté dando la lata, intenta instalarlo en c:\sistema

saludos

elcigarra 03-01-2006 13:05:42

Sabés que al principio puse el privatedir en c:\Temp pero el pc en el que estoy probando (que tiene win98) no tenía este directorio y me daba un error: "Path not found" con ese directorio por eso supuse que lo mejor era crearle uno yo para mi propio programa por si el pc del usuario no lo tenía. Por esto decidi crearle el ...\Net.

Lo que no sabía era que no podían ser el mismo el NetFileDir y el PrivateDir esto voy a ver si lo corrijo, pero sabés que además ayer en la noche descubrí que una de las tablas no estaba asignada al session1 (en realidad no estaba asignada a ningún lado) ahora que tengo esto corregido voy a probar y les aviso, pero antes tengo que conseguir que mi padre (cuyo desactualizado PC (Pentium 133) sin nada mas que un editor de texto y el iexplorer 5 es la fantástica máquina que uso para las pruebas de campo) me permita volver a entrar a su casa por enésima vez luego que se deshizo de mi... Pero qué no haría un padre por alguien que le dio tantas satisfacciones como yo...:D

Después les aviso.

Lepe 03-01-2006 17:07:16

Fijo que es eso. En cuanto a la carpeta Temp, no te cuesta nada crearla, o hacer que apunte a C:\windows\temp o C:\windows\tmp que seguro que existe.

Cita:

Empezado por Lepe
Por supuesto, revisa que todas las tablas / consultas apunten al mismo SessionName que el TSession que tengas

:D:p

saludos


La franja horaria es GMT +2. Ahora son las 01:01:10.

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