Club Delphi  
    Paypal   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 25-08-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Cita:
Empezado por Sayuri
pero no me has contestado... tengo que poner el datamodule disconnected al cerrar y desactivar los ttables?
Ahhh, ¿pero tenía que contestar?. Si te fijas, no lo estabas preguntando, sino afirmando

No. En el Destroy del Datamodule pones Database1.Close y listo, se cerrará el Database y todas las tablas.

En cuanto a desconectar el Datamodule, la verdad, no sé a que te refieres, supongo que te referías al Database.

Cita:
Empezado por Sayuri
Por cierto que el compañero JVC Soft me indicó que se puede ejecutar la misma aplicación mediante un acceso directo en el ordenador cliente (es decir los dos ejecutan el mismo .exe) pero eso va en contra del Local Share que me indicasteis.
Además estás sobrecargando la red, ya que estas ejecutando un programa de forma remota (irá más lento).

En el ordenador cliente:
- instala el bde
- configura el alias para que apunte al ordenador que actua de Servidor
- Metes el .exe y si acaso un archivo .ini de configuración.
- Listo.

Seguimos con GetUsers:

Antes de ejecutar tu programa debes cerrar en tiempo de diseño (como mínimo):
- las tablas
- el Database

Ten mucho cuidado, ya que cada vez que añades un campo a una tabla, el Database.Connected se pone a True él solito, así que debes ponerlo a false.

Ten en cuenta que Delphi tambien es un usuario más del BDE, por tanto, tambien cuenta. Las pruebas que vayas a hacer sobre GetUsers, cierra el proyecto de Delphi y ejecuta tu programa desde el explorador de windows.

Para poder usar la función GetUsers, debes tener la session y el Database Abiertos en tiempo de ejecución, y por supuesto el BDE debe estar instalado.

El tema de GetUsers se abrió para borrar los archivos *.LCK. Tienes 2 alternativas:
- Abrir la session y el Database, consultar el número de usuarios y si es 1 (tú sola), entonces cierras el database, borras los archivos y despues vuelves a conectar. (demasiado complejo....)
- Puedes borrar los archivos *.LCK sin más. Si alguien los está utilizando, no se borrarán, ya que Windows no lo permitirá (y no saca ningun error utilizando DeleteFile). Si nadie los está utilizando se borran.

Última edición por Lepe fecha: 25-08-2005 a las 10:39:29.
Responder Con Cita
  #2  
Antiguo 25-08-2005
Sayuri Sayuri is offline
Miembro
 
Registrado: jul 2005
Posts: 131
Poder: 22
Sayuri Va por buen camino
cuando dices
Cita:
Ten mucho cuidado, ya que cada vez que añades un campo a una tabla, el Database.Connected se pone a True él solito, así que debes ponerlo a false
te refieres a añadir un campo nuevo a la tabla ¿no? es decir añadir a la tabla un campo más (nombre, por ejemplo) y no a añadir un registro... Se que parecerá una bobada de pregunta pero es para evitarme una pequeña confusión
Responder Con Cita
  #3  
Antiguo 25-08-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
exacto, un campo nuevo.

Añades el campo con el Database Desktop, y despues cuando actualizas la tabla en delphi (doble clic a la tabla, boton derecho, Add all fields / Add field) justo ahora es cuando se pone en True el Connected.

Tambien se pone en activo en otras situaciones, pero con las prisas no me he fijado.

Un saludo
Responder Con Cita
  #4  
Antiguo 25-08-2005
Sayuri Sayuri is offline
Miembro
 
Registrado: jul 2005
Posts: 131
Poder: 22
Sayuri Va por buen camino
una pregunta... borro los archivos *.lck, pero borro todos porque me daban problemas los que se guardaban en C:\Temp... pero claro lo que he hecho es compartir tambien esa carpeta. Tal vez lo que debería hacer es borrar el C:\Temp de cada ordenador ¿o me equivoco?

Te acuerdas que ponía:
Código Delphi [-]
With MiSesion do begin
NetFileDir := '\\MiServer\MisDatos\NET';
PrivateDir := 'c:\Temp';
End;
 
With MiDataBase do begin
Params.Clear;
Params.Add('PATH='+'\\MiServer\MisDatos');
Params.Add('DEFAULT DRIVER=PARADOX');
Params.Add('ENABLE BCD=FALSE');
Connected := true;
End;

Creo que tengo que borrar el del ordenador en el que se esté trabajando... pero necesito que me lo asegures.. :-)
Responder Con Cita
  #5  
Antiguo 26-08-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Te aseguro que no es seguro

La carpeta PrivateDir, debe ser distinta para cada ordenador, (no debes compartirla en el servidor).

Borra los archivos NET de la carpeta NETFILEDIR y los
Archivos LCK (todos los que haya) en la carpeta PrivateDir y
DatabaseDir en ambas carpetas se crean (comprobado).

Nota: Los archivos LCK solo se crean si se usa una configuración de red. (red local instalada y funcionando en windows)
Si se usan carpetas locales el BDE no los crea.

Lo mejor es:
- Cada ordenador que arranca, borra el .NET del ordenador "servidor" y los LCK de la carpeta PrivateDir y DatabaseDir, y debe hacerse antes de abrir la session y el Database.

PD: No te puedo pasar el código para borrar porque hago uso de la librería NkFiles.pas de las NKLIBS.

Un saludo
Responder Con Cita
  #6  
Antiguo 26-08-2005
Sayuri Sayuri is offline
Miembro
 
Registrado: jul 2005
Posts: 131
Poder: 22
Sayuri Va por buen camino
muchas gracias. Ya lo cambie, sólo me faltaba borrar los net del NetFileDirectory

Un saludo
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 23:46:35.


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