Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-04-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Red face borrar archivos lck

Como le puedo hacer para borrar los archivos lck que se crean en el servidor???

Ya los trate de borrar directamente desde el servidor, pero me dice que no los puede borrar, que me asegure de que no estan siendo utilizados por otra persona o que tengo los permisos necesarios para hacer esa operacion.

como puedo saber si algun usuario esta conectado? con esto me refiero al scktsrv, o solamente tengo que poner las tablas en falso y con eso??

La verdad es que no puedo borrarlos, ya se me quemó el cerebro de tanto pensar!!
Saludos!!!!
Gracias
Responder Con Cita
  #2  
Antiguo 11-04-2006
alapaco alapaco is offline
No confirmado
 
Registrado: jun 2003
Ubicación: Buenos Aires
Posts: 287
Poder: 0
alapaco Va por buen camino
Tenes que tener cerradas todas las aplicaciones que usen el BDE y este apuntando a ese servidor..

Incluidos el Database Desktop, SQL Explorer, tu aplicación, etc..
Responder Con Cita
  #3  
Antiguo 12-04-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Hola!!

Que quieres decir con tener cerradas todas las aplicaciones que usen el bde???

Entonces necesito hacer otro programa para poder borrarlas,

Como puedo saber si algun cliente esta haciendo uso del bde o de alguna otra cosa del sistema??

Cómo le puedo hacer para bloquear el sistema y que nadie mas se conecte (que nada mas se puedan desconectar los que ya estaban conectados).
Necesito hacer que esto sea automático.

p.e. si se crearon archivos lck a la media noche o cerca de la media noche (que casi no hay usuarios del sistema), bloquear la aplicacion, desconectar a los usuarios que lo esten y borrar los archivos lck.

No encuentro la solucion, ahorita voy a probar cerrando las tablas.

Gracias por su atencion.!!!!
Saludos
Responder Con Cita
  #4  
Antiguo 12-04-2006
alapaco alapaco is offline
No confirmado
 
Registrado: jun 2003
Ubicación: Buenos Aires
Posts: 287
Poder: 0
alapaco Va por buen camino
Yo lo que hacía era que el primero que entraba a la aplicación eliminaba los .lck y los .net y mientras hacía esto no dejaba a nadie entrar al sistema, tal vez deberías hacer lo mismo.
Responder Con Cita
  #5  
Antiguo 12-04-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
ok, estoy de acuerdo, pero como hago eso??, no tengo idea.

Tienes algun ejemplo o idea en codigo. Sorry, pero no se me ocurre nada.

Hay otro problema, que te comente hace rato, como se que es el primero en entrar o que no hay otro usuario conectado???
ese es mi problema, que no encuentro la solucion a esto

Saludos!!!!
Seguire probando.
Responder Con Cita
  #6  
Antiguo 12-04-2006
alapaco alapaco is offline
No confirmado
 
Registrado: jun 2003
Ubicación: Buenos Aires
Posts: 287
Poder: 0
alapaco Va por buen camino
Guarda un valor en un archivo .ini, si ese valor es 0 no hay ningun usuario conectado, cuando se conecte el primer usuario le pones el valor 1, si tiene el valor no dejas entrar a nadie hasta que el primero borró todos los archivos y volvió a poner el valor en 0, se entiende ?
Responder Con Cita
  #7  
Antiguo 12-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Otra solución:

Usando GetUsers

Debes tener el Tdatabase abierto y la session para poder preguntar.Por tanto:
-Abres el tdatabase y Session
- preguntas el número de usuarios.
- si nada más que hay 1 usuario (el que pregunta)
  • - Creas un archivo en el servidor como semaforo (Mantenimiento.txt)
  • - cierras la session y el Tdatabase
  • - mandas a borrar los archivos lck y el .net (que tambien se queda a veces).
  • - borras el semaforo (Mantenimiento.txt)
- Abres de nuevo el Tdatabase y Session para entrar normalmente a la aplicación.

Para borrarlos, lo fácil es mandar a borrar y listo:
- si hay más usuarios, windows no deja borrarlo
- Si no hay más usuarios, se borran.

Para que nadie entre al programa:
- Antes de conectar la base de datos, miras si existe el archivo Mantenimiento.txt en el servidor, si existe, mensaje al usuario y con timer de 20 segundos preguntas hasta que no exista el archivo.

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

Última edición por Lepe fecha: 12-04-2006 a las 18:22:22.
Responder Con Cita
  #8  
Antiguo 28-04-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Hola!!!!

Voy a checar eso que me recomiendan. Ahora paso lo siguiente:

Borre el archivo lck de el servidor.
Pero ahora al querer mostrar el reporte me dice que no se puede porque todavia existe el archivo pdoxusrs.lck, lo cual es incorrecto. ya lo verifique en el servidor y nada mas tengo el .net.

Porque hace esto?? Alguien sabe, necesito mostrar el reporte, porque si no no sirve de nada el sistema.

Muchas gracias!!!!
Saludos!!!!
Responder Con Cita
  #9  
Antiguo 28-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Mira en el directorio privateDir puede que allí esté el archivo .lck, si no, haz una búsqueda en todo el PC del servidor y cliente.

Si el te dice que existen.... es que existen

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #10  
Antiguo 05-05-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Hola!!!!

Fijate que sigo con el mismo problema.
El error me lo marca cuando quiero ver un reporte.
Tengo 4 laboratorios ó 4 modulos, y en 3 de ellos no hay ningun problema, no me marca ni un error en cuanto al pdoxusrs.lck, pero en 1 de ellos me dice que tiene otro controlados .Net. la verdad es que no se que hacer. estoy que se me quema el cerebro de tanto checar y checar.

A alguien le ha pasado esto??
tienen alguna idea de que esta pasando???

Por cierto, otra pregunta, como puedo saber si esta inicializado el bde, ya que cuando quiero saber cuantos usuarios estan conectados, al inicializar el programa, me dice que no se puede inicializar el bde, y ya lo instale otra vez, pero me sigue marcando lo mismo.

Disculpen por poner dos preguntas en un solo tema.

Muchas gracias
Saludos!!!!
Responder Con Cita
  #11  
Antiguo 06-05-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Si te dice que está controlado por oro .Net, es porque tiene una session distinta, es decir, esa query / TTable, en su propiedad SessionName no tiene lo mismo que el resto de TTables y Querys.

Tambien puede ser que la tengas abierta desde diseño la consulta y en ejecución te dé esos problemas.

En cuanto a lo del bde, te comenté antes que en tiempo de ejecución tienes que tener abierto el TDatabase y el Session antes de usar el GetUsers.

Si no usas ningun Session, mira en el objeto TDabase.Session (creo recordar).

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #12  
Antiguo 10-05-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
La verdad es que no entiendo nada.

Tengo un programa que es el que funciona como servidor, en ese programa tengo las tablas, y ese programa esta ejecutandose en un servidor

Y en mi programa cliente, tengo cliendatasets. Entonces no se como hacerle. no uso ningun tdatabase ni tsession. es por eso que no comprendo nada, estuve investigando, pero no entiendo.

Si no es mucha molestia me podrian explicar bien como hacer lo del tsession o tdababase??
o alguna pagina en donde pueda encontrar paso a paso como crear el tsession o tdatabase.

Muchas gracias por tu tiempo.
Te lo agradezco de antemano
Saludos!!!!
Responder Con Cita
  #13  
Antiguo 11-05-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
En cuanto tú pones un objeto TTable/Tquery en u programa, delphi automáticamente añade un objeto TDatabase y TSession, pero claro, son ocultos, es decir, si donde tienes las tablas escribes "Session." delphi entenderá lo que estas poniendo y no aparecerá errores de compilacion.

Lo mejor para estos casos es poner tú mismo un objeto TDatabase y un TSession, hace las cosas más comprensibles al principio.

Y ahora si. Todas las tablas que tengas tienes que enlazarlas con el TDatabase y por ejemplo, en las Querys tiene la propiedad SessionName, que debe coincidir con la propiedad Session.SessionName.

El Tdatabase tambien debe estar enlazado al TSession mediante sus propiedades.

Busca en el foro por NetFileDir que debe estar correctamente configurado para poder usar paradox en red.

Y ahora, relee los mensajes anteriores .

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

Última edición por Lepe fecha: 11-05-2006 a las 17:48:48.
Responder Con Cita
  #14  
Antiguo 11-05-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Primero que nada, antes, podia entrar y podia ver los reportes normalmente, pero no se que le paso, que tiene como 15 dias que no me deja ver el reporte de un laboratorio, y todo esto es cuando activo el query.

En mi forma en donde se capturan los datos. puse un dbgrid, una datasource y un query, en el query(propiedad sql) le pongo mi query y posteriormente la activo y si me muestra los registros correspondientes, entonces no se porque cuando quiero activar el query en tiempo de ejecucion me marca que el directorio esta controlado por otro .Net.

Volviendo a lo del programa servidor, que es donde tengo las tablas.
En el programa cliente, te comentaba que solamente tengo clientdatasets, y no se si eso tenga que ver, ademas, desde el principio, le ponia al session de cada tabla default, Crees que si termino mi programa servidor y lo reinicio, pueda llegar a funcionar, estuve checando el codigo de los demas laboratorios para compararlo con el que no funciona, y no hay ninguna diferencia.

La verdad es que ya me esta sacando canas verdes.
Probe poniendo en el programa que funciona como servidor el session y el tdatabase, pero al momento de querer activar el tdatabase, me pide una contraseña y se supone que tengo todos los privilegios para ese servidor.
y en cada tabla no encuentro la opcion para ligarla con el TDatabase.

Es un problema con esto.
Bueno voy a seguir buscando en la red y pfobando a ver si puedo encontrar algo

Muchas Gracias por tu tiempo y consejo
Saludos!!!!
Responder Con Cita
  #15  
Antiguo 12-05-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Que funcione no significa que esté bien.

Para comprobar que todo está bien, como ya he dicho en más de una ocasión en estos foros, tienes que editar el mismo registro desde 2 ordenadores distintos. Si te aparece un cartel diciendo que no se puede editar porque lo está usando otra persona.... entonces ¡¡¡ EUREKA !!! todo está perfecto.

Si no sale el cartel entonces tienes fallos por ahí, no necesariamente de código fuente, sino de conceptos.

Antes de empezar a marearte, haz la prueba que he comentado. Despues puedes continuar evisando este hilo donde se habla extensamente del tema, de hecho son 41 mensajes hablando de paradox, las sessiones y demás.

Lamentablemente el artículo "paradox en red" del que se habla aún no está disponible por el fallo del servidor de ClubDelphi, pero si sigues todo el hilo verás que se habla de TODO.

Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #16  
Antiguo 15-05-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Hola!!!!

Primero que nada quiero comentarte que no se que haya pasado, pero ya solucionè el problema que tenia.
Simplemente termine el socketserver y mi programa que funciona como servidor y los volvi a arrancar y funcionó el reporte del laboratorio que no mostraba los reportes, creo que el usuario se trabado, como si estuviera utilizando el bde o paradox, por eso me decia que existia el archivo .lck aunque fisicamente no existiera.

Con respecto a lo de paradox en red, ya he impreso y leido muchas veces ese articulo, y ya lo entendi, lo que no entiendo es. Que en mi programa cliente, no tengo ninguna tabla como tal, sino que tengo utilizo clientsdataset.

No importa que las tablas residen en el servidor???,
En el programa que funciona como servidor, tengo los TTables y TDataSources, y TDataSetProvider( entonces desde mi programa cliente me enlazo a ellas por medio de un ClientDataset.

O es mejor tener las TTables en el programa Cliente? y en el servidor alojar solamente las tablas(paradox). ya que en el servidor( windows nt) ejecuto el socket server y mi programa servidor, no se si sea necesario tener un programa que funcione como servidor o como lo dije anteriormente solamente ejecutar el socket server? Creo que ya me hice un poco de bolas.

Muchas gracias por su tiempo
Saludos!!!!
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Borrar archivos rex Varios 9 08-03-2012 22:50:35
Borrar y renombrar archivos. zugazua2001 Varios 5 08-07-2005 02:45:44
borrar archivos trabuc Varios 1 17-10-2004 13:36:07
Borrar varios archivos mrmanuel Varios 5 27-05-2004 02:03:54
Borrar archivos de un directorio Magneto Varios 1 13-08-2003 13:20:34


La franja horaria es GMT +2. Ahora son las 17:04:04.


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