Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-12-2005
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 19
elcigarra Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 30-12-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
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.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 30-12-2005
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 19
elcigarra Va por buen camino
Gracias, lo probaré así.
Responder Con Cita
  #4  
Antiguo 03-01-2006
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 19
elcigarra Va por buen camino
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).
Responder Con Cita
  #5  
Antiguo 03-01-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
- 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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 03-01-2006
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 19
elcigarra Va por buen camino
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...

Después les aviso.
Responder Con Cita
  #7  
Antiguo 03-01-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
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


saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 22:06:58.


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
Copyright 1996-2007 Club Delphi