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 24-07-2007
yogutero yogutero is offline
Miembro
 
Registrado: jul 2007
Posts: 14
Poder: 0
yogutero Va por buen camino
Question dos instancias de paradox en terminal server

el problema que tengo s bie sencillo de xplicar pero no soy capaz de rrglarlo seguramente porque no casi se nada de paradox.

No puedo abrir mas de una instancia de la base de datos en el mismo equipo.
La aplicación que tengo funciona ok en LAN pero cuando lo intento hacer en terminal server (al acceder todos los usuarios al mismo bde que está instalado en el servidor) pues me aparace que está bloqueado por el usuario X.
Siempre me dice que está bloqueado por el primer usuario que entra en terminal server.

Un saludo.
Responder Con Cita
  #2  
Antiguo 26-07-2007
yogutero yogutero is offline
Miembro
 
Registrado: jul 2007
Posts: 14
Poder: 0
yogutero Va por buen camino
Ayuda por favor

por favor alguien me puede responder? por mas que elo no hay forma de hacer esto.

Gracias.
Responder Con Cita
  #3  
Antiguo 27-07-2007
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 22
sitrico Va por buen camino
Hola, me encuentro evaluando la posibilidad de hacer lo mismo (para un "posible" cliente) pero usa Citrix para el manejo de TS. Encontré esto pero no puedo probarlo:

http://support.citrix.com/article/CTX7640

Consiste básicamente en reubicar el archivo PDOXUSRS.NET en un directorio compartido.

Si te sirve por favor comentalo porque no quiero ir a ciegas a probar a la oficina del cliente. Tirando flechas como dirían por aqui. .
__________________
Sitrico
Responder Con Cita
  #4  
Antiguo 27-07-2007
yogutero yogutero is offline
Miembro
 
Registrado: jul 2007
Posts: 14
Poder: 0
yogutero Va por buen camino
Lo probaré

Muhisimas gracias por tu aporte, después de leerlo bien te dicen que o montes otro server o mapees la unidad donde está el .net para que asi a traves de terminal server accedan como si fuera red local.

Parece interesante, el lunes que viene lo pruebo y te comento.

Gracias.
Responder Con Cita
  #5  
Antiguo 02-08-2007
yogutero yogutero is offline
Miembro
 
Registrado: jul 2007
Posts: 14
Poder: 0
yogutero Va por buen camino
Al final no salió

Explico las prueba que he hecho a ver que puede pasar.

1.- Doy permisos de administrador a los usuarios que se conectan en terminal server.
2.- La aplicacion está en S:\paradox\trabajo para los usuarios de la red local y la opcion local share=true en el DBE. El terminal server está en D:\paradox\trabajo (es el mismo directorio, los equipos en red local mapean \\servidor\D\ como S.
3.- Con esta configuracón los equipos en red local funcionan ok pero en terminal server solo puede entrar uno.

El efecto de abrir 2 o varios equipos en terminal server es como si abrieramos varias veces paradox en una maquina y yo creo que es porque el fichero lck de bloqueo está siendo usado y me deja fuera.

Pruebas que he hecho:

- poner local share=false en el bde del servidor, y el terminal server funciona!!! pero los 9 equipos de la red local se vuelven locos, porque supongo que las tablas perderán consistencia al no estar controlados por un unico lck.

- mapear en el mismo servidor D:\ como S:\ asi todo el mundo tiene la misma ruta en NET DIR. No vale de nada.

Respecto al anterior consejo de sitrico no se si lo de el documento de citrix es aplicable o no.


A ver si después de ete rollo nos salta la chispa y algún alma caritativa me ayuda.
Responder Con Cita
  #6  
Antiguo 03-08-2007
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 22
sitrico Va por buen camino
Cita:
Al final no salió

--------------------------------------------------------------------------------
Explico las prueba que he hecho a ver que puede pasar.

1.- Doy permisos de administrador a los usuarios que se conectan en terminal server.
2.- La aplicacion está en S:\paradox\trabajo para los usuarios de la red local y la opcion local share=true en el DBE. El terminal server está en D:\paradox\trabajo (es el mismo directorio, los equipos en red local mapean \\servidor\D\ como S.
3.- Con esta configuracón los equipos en red local funcionan ok pero en terminal server solo puede entrar uno.

El efecto de abrir 2 o varios equipos en terminal server es como si abrieramos varias veces paradox en una maquina y yo creo que es porque el fichero lck de bloqueo está siendo usado y me deja fuera.
Creo que por aqui van los tiros, con esto (y si el problema es el .lck) puedes solicionarlo de la siguiente manera:

Fuente: http://www.terra.es/personal/alksoft...lo/paradox.htm

Lo que debes hacer es modificar la aplicación para asignar el valor de session.Private dir a un directorio DISTINTO para cada usuario (tal vez debas usar algo así:

Código Delphi [-]
Procedure SetPrivateDir(UserName:String);
Var
Dir : String;
begin
Dir := ExtractFilePath(Application.ExeName)+'Temp\'+UserName;
If ForceDirectories(Dir) Then // crearlo si no existe
   Session.PrivateDir := Dir // aqui se creará el .lck
Else
   raise exception.Create('No se puede inicializar el BDE');
end;
__________________
Sitrico
Responder Con Cita
  #7  
Antiguo 03-08-2007
yogutero yogutero is offline
Miembro
 
Registrado: jul 2007
Posts: 14
Poder: 0
yogutero Va por buen camino
me parece perfecto.

Se que una solucion en codigo probablemente funcione, pero ¿Donde se pone eso?
Te comento, llevo años programando...... en visual basic, con mysql, sql server y me encuentro en paradox y su entorno perdido, lo unico que se es que el formulario inicial se llama newgate.fdl y de ahí tiran todos.

¿En el codigo del formulario, en un modulo (si existen modulos en paradox)?
Responder Con Cita
  #8  
Antiguo 05-08-2007
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 22
sitrico Va por buen camino
Normalmente se hace en el datamodule (tambien lo puedes hacer en el módulo principal)

Basta con que incluyas estas líneas al formulario principal:

Código Delphi [-]
session.PrivateDir := DirectorioPrivadoUsuario;
session.netfiledir := DirectorioComunCompartido;

Puedes encontrar algo mas en el foro si buscas PrivateDir ó NetFileDir

Te mando un ejemplo de un datamodule que uso.

Código Delphi [-]
//STANDARD, ORACLE, SYBASE, or INTERBASE
// Leer la configuracion de la base de datos
Ini := tIniFile.Create(ChangeFileExt(Application.ExeName)+'.ini');
Try
   // Bases de Datos PARADOX
   Session.PrivateDir := Ini.ReadString('BaseDeDatos','PrivateDir','');
   Session.NetFileDir := Ini.ReadString('BaseDeDatos','NetFileDir','');
   If (Session.NetFileDir <> '') and Not(DirectoryExists(Session.NetFileDir)) then
      MessageBoxStr('No se encontró el directorio de datos del Sistema.  '+
                    'Si se trata  de  una  configuración de red es posible '+
                    'que el servidor este apagado o no tenga acceso a la '+
                    'carpeta o unidad correspondiente. Si es una instalación '+
                    'local puede tener algún problema de configuración. Puede '+
                    'Verificar en Herramientas -> Opciones -> Bases de Datos '+
                    'la configuración actual','Error');
   DBMain.DriverName := Ini.ReadString('BaseDeDatos','DriverName','STANDARD');
   j := Ini.ReadInteger('BaseDeDatos','ParamsCount',3)-1;
   For i := 0 To j do
      DbMain.Params.Add(Ini.ReadString('BaseDeDatos','Params'+FullZero(i,3),''));
Finally
   Ini.Free;
   End;
// Conectar la Base de Datos
DbMain.Connected := True;

DbMain : TDatabase;
los parametros son los "por defecto" de paradox

Tomado del INI

Cita:
[BaseDeDatos]
DriverName=STANDARD
ParamsCount=3
NetFileDir=C:\MIS PROYECTOS\IVA32\DATA
PrivateDir=C:\MIS PROYECTOS\IVA32\
Params000=PATH=C:\MIS PROYECTOS\IVA32\DATA
Params001=DEFAULT DRIVER=PARADOX
Params002=ENABLE BCD=FALSE
__________________
Sitrico
Responder Con Cita
  #9  
Antiguo 05-08-2007
yogutero yogutero is offline
Miembro
 
Registrado: jul 2007
Posts: 14
Poder: 0
yogutero Va por buen camino
Gracias

Estupendo, muchas gracias, la unica pregunta que me quedaría como cosas rara es que:

- si en el bde existe la opcion netdir no existira otra opcion donde poner private dir?

la verdad es que no la encuntro en el bde si existe claro.
Responder Con Cita
  #10  
Antiguo 07-08-2007
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 22
sitrico Va por buen camino
En el Database Desktop Tienes un directorio PRIV: que por defecto apunta a la carpeta temporal de Windwos.

Por código basta con asignar la propiedad PrivateDir del tSession.

En el BDE Administrator no veo la opción.
__________________
Sitrico
Responder Con Cita
  #11  
Antiguo 08-08-2007
yogutero yogutero is offline
Miembro
 
Registrado: jul 2007
Posts: 14
Poder: 0
yogutero Va por buen camino
Muchas gracias

El jueves pruebo todo lo que me has dicho que con eesto de las vacaciones cuando no estoy yo está el cliente.

Lo dicho gracias y al lío.
Responder Con Cita
  #12  
Antiguo 20-08-2007
yogutero yogutero is offline
Miembro
 
Registrado: jul 2007
Posts: 14
Poder: 0
yogutero Va por buen camino
Solucionado

Bueno, pues por fin lo conseguí, dandole vueltas a lo que me habías dicho y como no tenía mucha idea de código en delphi /paradox me fui a buscar dentro de tools/settings/preferences -> database y ahí probé a cambiar el directorio privado a mano.

Probé y vi que cada sesión usa una instancia del BDE o algo parecido porque cada usuario del terminal server mantiene su propio directorio privado asi que solo fue cuestion de entrar como usuario1 y poner el directorio privado en C:\
y despues entrar como usuario2 y cambiarlo a c:\temp por ejemplo, como ambas carpetas estan compartidas totalmente en el servidor, FUNCIONAAA.

Muchas gracias por todos vustros esfuerzos, me abrísteis el camino.

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Terminal server dape Varios 5 15-05-2007 06:37:10
BDE En terminal server keys Conexión con bases de datos 3 24-10-2005 12:19:20
Problemas con Terminal Server Win 2003 Server El_Perrito Windows 0 16-10-2004 19:53:45
Por que instancias en sql server 2000 uper MS SQL Server 1 10-07-2004 19:11:06
Terminal Server chavi Varios 4 24-06-2003 21:31:54


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


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