Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Delphi y bases de datos paradox en red (https://www.clubdelphi.com/foros/showthread.php?t=33491)

sapi 07-07-2006 21:48:22

Delphi y bases de datos paradox en red
 
Wenas. Os comento mi problema.

He hecho una aplicación en Delphi 3 que usa tablas paradox. Mi problema es que tengo q prepararlo para usarlo en 2 ordenadores, donde uno de ellos actuaria como servidor al tener las tablas en una carpeta del equipo, y el otro ordenador tendría que conectarse a este. Pues no se como hacerlo. He leido un monton de foros sobre el tema pero no me funcionan las soluciones. En ellos decian algo de PDOXUSRS.NET, de configurar cada equipo para que todas las maquinas apuntaran a este archivo de la forma \\SERVIDOR\DATOS\NET, etc... Me gustaria que me ayudaran. ¿que elementos necesito en mi aplicación? ¿que tengo que configurar en el bde? ¿que propiedades de los componentes tengo que cambiar? Tengo 3 tablas que estan en el form principal y no me dan ningun problema, pero he probado poniendo Tsession y Tdatabase como decian los foros y nada. Por favor, si alguien sabe del tema, que me conteste diciendome paso a paso que cambiar, porque ya no se que hacer para que funcione y me urge un poco de prisa terminarlo.

Muchas gracias

nemesio 07-07-2006 23:39:25

Hola

El articulo de Ian Marteen sobre ese tema es muy bueno:
http://www.marteens.com/trick12.htm
espero te sirva.

Lepe 08-07-2006 17:18:48

Te aconsejo este hilo de ClubDelphi Tiene 40 mensajes acerca de Paradox en Red, y se habla con detalle de muchas cosas que en otros manuales solamente se "nombran".

Saludos

sapi 04-08-2006 13:28:43

Hola, perdon por haber tardado en contestar sobre mi problema, pero he
estado ocupadillo ultimamente. Bueno os comento.

He leido el foro que decias arriba, y por mas que hago lo q pone sigue sin ir. Os explico lo que hago:

Desarrollando la aplicación, simulo que el ordenador donde la estoy desarrollando es el servidor, asi que pongo la propiedad local share a true.

Luego, no uso datamodule porque lei que no era necesario, asi que tengo mis 3 tablas en el formulario principal, y luego añadi (despues de leerlo por los foros) el tsession y el tdatabase que están en el mismo lugar que las tablas.

El componente database lo configuro poniendole el alias que cree en el DBE, conectado = true, databasename=db, name=Database y sessionname= default.

El tsession como active=true, sessionname=s1, name=Sesion

Luego las 3 tablas de la misma forma, active=false (las activo en el oncreate del form principal donde estan depositadas), databasename=db, sessionname=default.

Creo que no me dejo ninguna propiedad importante sin citar. En el OnCreate del form principal pongo lo siguiente:

Código Delphi [-]
 
procedure TFmenu.FormCreate(Sender: TObject);
begin
 
With Database.session do begin
  NetFileDir := '\\SERVIDOR\DATOS\NET';
  PrivateDir := 'c:\Temp';
End;
 
With Database do begin
  Params.Clear;
  Params.Add('PATH='+'\\SERVIDOR\DATOS');
  Params.Add('DEFAULT DRIVER=PARADOX');
  Params.Add('ENABLE BCD=FALSE');
End;

  Database.Session.Open;
  Database.Connected:= True;
Tclientes.open;
Tvendedores.open;
Tfichas.open;
end;

Cuando intento compilar, me sale el siguiente error:

'Network initialization failed.
Permision denied.
File: \\SERVIDOR\DATOS\NET\PDOXUSRS.NET
Directory: \\SERVIDOR\DATOS\NET\'.

Este es el error que me aparece siempre. ¿A que se debe? Espero haber dado todas las explicaciones necesarias para que me podais ayudar, porque me he roto mucho el coco y no doy con la solución.

Muchas gracias de antemano.

Lepe 04-08-2006 23:10:46

Te felicito, has explicado muy claramente tu problema, yo veo 2 cositas:
- El Tdatabase y el session deben estar cerrados en tiempo de diseño, si los dejas abiertos te fallará cuando lo pases a producción.
- Se debe tener una red local funcionando para usar rutas de red, (al menos en Windows XP tengo el mismo problema). O bien usas rutas locales para hacer las pruebas, o bien ejecutas tu programa mientras estas conectado a internet.

Hay un pequeño detalle que me molesta y es el tipo de error que te dá "permission failed", ¿tienes la carpeta Datos compartida con acceso total?. Lo pregunto porque acabo de hacer la prueba y si al compartir la carpeta no tienes marcada la opción "permitir que los usuarios de la red modifiquen mis archivos" me da precisamente ese error (para ser concretos: Código de error: 11265).

Saludos

roman 04-08-2006 23:27:31

Un comentario:

Por defecto, la VCL crea una componente TSession que es la que se refiere en

sessionname=default

Si usan otra TSession entonces las referencias debe apuntar a esa no a default.

// Saludos

sapi 07-08-2006 12:16:36

Muchas gracias a todos.

He cambiado las referencias al sesion de default al de mi programa, activado la opción de "permitir que los usuarios de la red cambien mis archivos" y cerre el session y el database en tiempo de diseño. Despues de esto me daba otro error (path not found 'c:\temp\pdoxurs.lck' creo recordar, o algo parecido) pero lo arregle creando la carpeta temp en c porque no la tenia, un despieste tonto :D. Despues de eso me compilo sin problemas, ahora solo queda probarlo en la red de la empresa y ver si todo funciona. Cuando lo pruebe os diré si ha funcionado.

De nuevo gracias a todos por vuestra ayuda.

Lepe 07-08-2006 12:57:10

Cita:

Empezado por sapi
Muchas gracias a todos.

He cambiado las referencias al sesion de default al de mi programa, activado la opción de "permitir que los usuarios de la red cambien mis archivos" y cerre el session y el database en tiempo de diseño. Despues de esto me daba otro error (path not found 'c:\temp\pdoxurs.lck' creo recordar, o algo parecido) pero lo arregle creando la carpeta temp en c porque no la tenia, un despieste tonto :D. Despues de eso me compilo sin problemas, ahora solo queda probarlo en la red de la empresa y ver si todo funciona. Cuando lo pruebe os diré si ha funcionado.

De nuevo gracias a todos por vuestra ayuda.

Ese despiste tonto pasará cada vez que al usuario le formateen el equipo. Hazlo por código, que son dos líneas nada más (o quizás en el instalador ¿? ;)).

Aprovecho para que hagas la prueba del millón (como ya he dicho muchas ocasiones). Edita un mismo registro desde 2 ordenadores, si sale el error de que otro usuario lo tiene bloqueado, todo está OK.

Saludos y suerte


La franja horaria es GMT +2. Ahora son las 20:08:45.

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