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 02-03-2005
Avatar de EstebanWeb
EstebanWeb EstebanWeb is offline
Miembro
 
Registrado: dic 2004
Posts: 15
Poder: 0
EstebanWeb Va por buen camino
Exclamation Paradox en Red con WinXP y Win98

Hola Gente,

Tengo un problema... tengo una aplicación que trabaja en red con una BD hecha en Paradox. La cosa es que en mi trabajo la probe en una red con todas maquinas con XP y funciona de diez , pero cuando fui a mi cliente resulta que tiene el "Servidor" con XP y los "Clientes" con W98 y me manda un cartel de que el directorio está siendo controlado por otro PDOXUSRS.NET .

Alguien tuvo alguna vez el mismo problema?, o alguien sabe si el tema es porque uno esta en XP y la otra en w98? probé invirtiendo los papeles (poniendo la de w98 como server pero no funciona tampoco) o alguien sabe por donde podria venir el tema?. Aclaro, por las dudas, que ya me se casi de memoria el articulo que trata sobre paradox en red que se encuentra en este sitio (el cual me ayudo mucho al momento de desarrollarlo).

Gracias,
Esteban
__________________
Saludos,
Esteban

www.EstebanWeb.com.ar
Porque la vida esta en constante movimiento,Tu Sitio no puede quedarse quieto.
Responder Con Cita
  #2  
Antiguo 02-03-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Por lo que veo puede deberse a una mala configuración del alias, si te has leido el artículo, sabrás que todos los equipos que se conecten tienen que tener instalado el BDE y apuntanto a la misma carpeta del Servidor el fichero de bloqueos .Net

Por ejemplo.
\\Servidor\Datos\Net

No se aconseja que se encuentre en la misma carpeta que los datos.

Todos los equipos incluso el propio servidor si es un puesto más, deberan de acceder por el mismo camino.

Todos los equipos tendrán que tener instalado el BDE y configurado debidamente.

Yo tengo algun sistema sobre XP y 98 simultaneamente y no me ha dado ningún problema.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 02-03-2005
Avatar de EstebanWeb
EstebanWeb EstebanWeb is offline
Miembro
 
Registrado: dic 2004
Posts: 15
Poder: 0
EstebanWeb Va por buen camino
Marcos y publico en general,
Gracias por tu respuesta pero todo lo que enuncias lo tengo hecho y lo verifique. Tengo el BDE instalado en ambas maquinas y apuntan a la misma carpeta del servidor.

Te copio el codigo por si se me escapo algo...

Código Delphi [-]
   procedure TDM.DataModuleCreate(Sender: TObject);
   begin
   ok:=true;
   getdir(0,dir);
    try
     database1.AliasName:='taco';
     database1.Connected:=true;
     
     if ((anterior=1))
           then
           begin
           //restaurar la BD
 if( messagedlg('La última ejecución fue en modo local,'+#13+'desea restaurar la Base de Datos de la red?',MTWarning,mbOKCancel,0)=mrok)
                   then
            
                  begin
                  database1.Connected:=false;
                  Database1BeforeConnect(sender);
                 windows.WinExec(pchar(dir+'\Restauracion\Restauracion.exe'),1);
                  database1.Connected:=true;
                  end;
           end;
     database1.Session.NetFileDir:=ExpandUNCFileName(Database1.Directory+'\NET');
     database1.Session.PrivateDir:='C:\WINDOWS\temp';//GetWindowsTempDir;
     activarTablas;
     logfile(0);
    except
     if (messagedlg('La red no está funcionando,' +#13+'desea trabajar en forma local?', MTerror, mbOKCAncel,0)=mrok)
      then
       begin
        database1.Directory:='c:\';
        database1.Connected:=false;
        database1.AliasName:='tacoloc';
        database1.Connected:=true;
       
        database1.Session.NetFileDir:=ExpandFileName(Database1.Directory+'\NET');
        database1.Session.PrivateDir:='C:\WINDOWS\temp';//GetWindowsTempDir;
        activarTablas;
        logfile(1);
       end
       else
        ok:=false;
    end;
   
   end;

a que te referis con apuntar con...
Cita:
Empezado por marcoszorrilla
apuntanto a la misma carpeta del Servidor el fichero de bloqueos .Net

Por ejemplo.
\\Servidor\Datos\Net
Vale aclarar que si se conecta una sola no hay problemas, la cuestion surge cuando se quiere conectar la segunda

Gracias
__________________
Saludos,
Esteban

www.EstebanWeb.com.ar
Porque la vida esta en constante movimiento,Tu Sitio no puede quedarse quieto.

Última edición por EstebanWeb fecha: 02-03-2005 a las 15:54:28.
Responder Con Cita
  #4  
Antiguo 02-03-2005
Avatar de EstebanWeb
EstebanWeb EstebanWeb is offline
Miembro
 
Registrado: dic 2004
Posts: 15
Poder: 0
EstebanWeb Va por buen camino
De paso pregunto si es normal que me cree dos PDOXUSRS.NET ??? uno en el C:\ y otro en el \\servidor\datos\net o si esto puede ser la punta del problema???

gracias de nuevo
__________________
Saludos,
Esteban

www.EstebanWeb.com.ar
Porque la vida esta en constante movimiento,Tu Sitio no puede quedarse quieto.
Responder Con Cita
  #5  
Antiguo 02-03-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Pues por ahí puede venir el problema ya que este archivo debe de crearse únicante en el Servidor en la carpeta correspondiente.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #6  
Antiguo 03-03-2005
Sick boy Sick boy is offline
Miembro
 
Registrado: may 2003
Ubicación: Cantabria
Posts: 245
Poder: 22
Sick boy Va por buen camino
A mi me ha pasado lo mismo.

Borra todos los .net y .lck en todos los equipos.
Si ya tenias todos los BDE bien configurados, deberia de arrancar sin problemas.

El problema es que tu puedes arrancar en red o local, y cada configuracion crea distintos .net, por eso tienes varios.

Solucion: Buscar y borrar los ficheros *.lck y *.net ANTES de modificar el NET DIR.

Un saludo
Responder Con Cita
  #7  
Antiguo 08-03-2005
Alfredo Alfredo is offline
Miembro
 
Registrado: nov 2003
Ubicación: Valencia, Venezuela
Posts: 234
Poder: 21
Alfredo Va por buen camino
Al hacer las configuraciones que comente antes uso un solo Tsession. ¿Por que no haces esa prueba?. Otra cosa, asegurate que no queden querys o tablas abiertas al momento de finalizar los programas. Y no dejes en tiempo de diseño que el tsession activo. (Asi lo tengo yo y me funciona )
__________________
if Vivir = Vivir + Aprender then Aprender = ?
Alfredo Borges
Responder Con Cita
  #8  
Antiguo 09-03-2005
Mariana Mariana is offline
Miembro
 
Registrado: sep 2003
Posts: 50
Poder: 21
Mariana Va por buen camino
sigue el mismo problema

Alfredo, te agradezco la ayuda y a todos los que contestaron, pero el problema continúa, he hecho todas las pruebas (con lo que me han sugerido) e igualmente no lo puedo solucionar. Si a alguien se le ocurre algo más que pueda probar les adrdezco me lo cuenten.
Muchas Gracias a todos.
Mariana.
Responder Con Cita
  #9  
Antiguo 11-03-2005
Avatar de Pablo Carlos
Pablo Carlos Pablo Carlos is offline
Miembro
 
Registrado: jun 2004
Ubicación: Mendoza - Argentina
Posts: 270
Poder: 20
Pablo Carlos Va por buen camino
Talking

Holas.. te comento lo que hice y funciona en 16 maq con w95, w98, nt, 2000 sin problemas (hasta ahora)
en el ejecutable del prg agrego esto...
Código Delphi [-]
// al uses agrega inifiles a todos los form donde leas o escribas un ini
// que hago aqui? simplemente leo un ini
var
  i : TIniFile;
begin
   i := TIniFile.Create('Servidor.ini');
   i.ReadString('Datos','Servidor', Servidor );
   i.Free;
  frmInicio := TfrmInicio.Create(Application);
  frmInicio.Show; //Formulario de presentacion
  frmInicio.Update;
  Application.Initialize;
en el formulario de inicio agrego esto
Código Delphi [-]
//Funcion para borrar el archivo .net
function ALaPapelera(Fichero:string):boolean;
 var
   FileOp: TSHFileOpStruct;
 begin
   if FileExists(Fichero)then
   begin
     FillChar(FileOp,SizeOf(FileOp),#0);
     With FileOp do
     begin
       Wnd:= Application.Handle;
       wFunc:= FO_DELETE;
       pFrom:= PChar(Fichero+#0#0);
       fFlags:= FOF_SILENT or FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
     end;
     Result:= (ShFileOperation(FileOp)=0);
   end else
     Result:=False;
 end;


procedure TfrmInicio.FormCreate(Sender: TObject);
//en este evento si el archivo ha sido borrado ... mensaje
// si no existe el ini llamo a otro form donde indico la ruta del servidor o la
// ruta local
begin
 if ALaPapelera ('c:\PDOXUSRS.NET') then
  ShowMessage('Ha sido borrado con éxito el archivo .NET');
 if FileExists('c:\windows\Servidor.ini') = False then
  begin
    frmPath := TfrmPath.Create(Application);
   try
    frmPath.ShowModal;
   finally
    frmPath.Free;
   end;
  end;
en algun evento (el mio en un boton) creo el ini donde eRuta es un edit que debe llenar el usuario con los datos precisamente de la localización de la tabla
Código Delphi [-]
var
  i : TIniFile;
  Servidor : String;
begin
   Servidor := eRuta.Text;
   i := TIniFile.Create('Servidor.ini');
   i.WriteString('Datos','Servidor', Servidor );
   i.Free;
end;

uso un solo Tsession para tablas y querys... en la propiedad de tablas y querys ni DataBaseName ni Alias.
En el evento oncreate de tablas y querys digo que lea el ini de alli saco la propiedad DatabAseName de cada componente
Código Delphi [-]
procedure TdmTablas.DataModuleCreate(Sender: TObject);
var
 i : TIniFile;
 Ruta : String;
begin
 i := TIniFile.Create('Servidor.ini');
 Ruta := i.ReadString('Datos','Servidor', '');
 i.Free;
 Session1.NetFileDir := Ruta;
 Session1.Active := True;
 dbEscuela.DataBaseName := Ruta;
 dbEscuela.Connected := True;
 tblDatosPersonales.DataBaseName := Ruta;

Antes de ejecutar borra todos los *.net de cada maquina y los *.lck donde este alguno... luego ejecutas y no tendrás problema.. el ini creado teoricamente sera escrito una sola vez ya que primero veo si esta y si es asi No paso al frmPath para crearlo (esto por si se borra o lo borran)
Bueno te comento que seguramente abra otras formas pero es la que hice
__________________
Por qué todas las personas saben exactamente cómo debemos vivir nuestra vida, y nunca tienen idea de cómo deben vivir sus propias vidas.
Responder Con Cita
  #10  
Antiguo 11-03-2005
vicvil vicvil is offline
Miembro
 
Registrado: may 2003
Ubicación: Chile
Posts: 157
Poder: 22
vicvil Va por buen camino
Caso similar

El problema que me surge a mi es el siguiente.
Tengo varios pc conectados unos con Win98 y otros con XP y trabajan bien, pero hay uno en que la aplicaciòn corre de una manera anormal es decir con una gran lentitud, se demora en conectarse al Programa y cuando trabaja demora bastante en realizar las cosas, incluso para escribir se demora en mostrar las letras.
¿A que se podrà deber eso? ¿es por un problema de la red? aunque se pueden ver perfectamente todos los pc.
Responder Con Cita
  #11  
Antiguo 11-03-2005
Alfredo Alfredo is offline
Miembro
 
Registrado: nov 2003
Ubicación: Valencia, Venezuela
Posts: 234
Poder: 21
Alfredo Va por buen camino
Vicvil:
Por lo que cuentas, si todas las demas maquinas manejan los mismos parametros de conexión, usan el mismo programa ytrabajan perfectamente... es claro que el problema esta relacionado directamente con el equipo (quiza un virus, problemas con el disco duro, alguna incompatibilidad, corrupción del windows) y no con la aplicación en sí. Aunque no nos dices si el equipo trabaja bien con otros programas o como se conecta. Deberias chequear eso primero.
__________________
if Vivir = Vivir + Aprender then Aprender = ?
Alfredo Borges
Responder Con Cita
  #12  
Antiguo 11-03-2005
vicvil vicvil is offline
Miembro
 
Registrado: may 2003
Ubicación: Chile
Posts: 157
Poder: 22
vicvil Va por buen camino
Respuesta

El equipo fue formateado, esta bien configurado, no tiene problemas con otros programas. es con esta aplicacion en particular que se torna demasiado lento. Lo he revisado por todas partes y no encuentro razon.
Responder Con Cita
  #13  
Antiguo 11-03-2005
samantha jones samantha jones is offline
Miembro
 
Registrado: ago 2004
Posts: 46
Poder: 0
samantha jones Va por buen camino
Cuando realizo una app con Paradox, lo que hago es lo siguiente y nunca me ha dado problemas, bueno, más alla de los normales.

a) en cada cliente instalo el BDE ('se instala ')
y cambio el parametro local share a true

b) en el servidor comparto 2 directorios con todos los permisos, uno para datos y otro para el net.

c) en el programa, coloco un componente Tsession, el cual ligo a todos los datasets de la aplicación, y desde un ini cargo la propiedad de NEtfiledir, por lo cual todos las instancias del programa apuntan al mismo directorio de NET

d) de igual manera coloco un componente Tdatabase, el cual tambien lo ligo a todos los demás datasets y cargo desde un ini el parametro de path

el tdatabase lo configuro de la sig manera

tdatabase.databasename := 'MIBASEDEDATOS';
{cualquier nombre que le querramos poner}
tdatabase.params.clear;
tdatabase.params.add('PATH=' + valor_leido_del_ini);
tdatabase.params.add('DEFAULT DRIVER=PARADOX');
tdatabase.params.add('ENABLE BCD=FALSE');

e) de esta manera no tengo que configurar un alias en cada máquina cliente.

Espero y les sirva.

Saludos
Samantha Jones
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 04:20:52.


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