Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Duda con asignar session con paradox? (https://www.clubdelphi.com/foros/showthread.php?t=28608)

Coco_jac 25-12-2005 01:26:44

Duda con asignar session con paradox?
 
Hola amigos del foro, tengo una duda con respecto a trabajar en red con Paradox, bueno estoy tomando el ejemplo del articulo paradox en la red.
Código:


With MiSesion do begin                        //Tsession
NetFileDir := '\\MiServer\MisDatos\NET';
PrivateDir := 'c:\Temp';
End;


With MiDataBase do begin          //Tdatabase 
Params.Clear;
Params.Add('PATH='+'\\MiServer\MisDatos');
Params.Add('DEFAULT DRIVER=PARADOX');
Params.Add('ENABLE BCD=FALSE');
Connected := true;
End;

Tengo la siguiente duda los Tquery o TTable que coloque en mi datamodule tienen que hacer referencia a la session en su propiedad "sessionname" como hago esto? si pudieran darme un ejemplo seria grandioso.
Otra duda mas, mi Tquery sera necesario en su propiedad DATABASENAME volver a definirla ? o con solo apuntar a la ssesion es suficiente.

Espero sus comentarios.

Gracias anticipadas.

Coco_jac 26-12-2005 14:42:22

necesito su ayuda.....................

marcoszorrilla 26-12-2005 14:50:06

Una vez que crees el TSession Selecciones todas las tablas y Consultas a la vez y le pones de una sola vez este TSession a todas.
Ojo tiene el efecto que te cerrará todas las tablas y consultas, las que deban de estar abiertas al iniciar la aplicación tienes que revisarlas para volver a poner su propiedad Active = True.

Un Saludo.

Coco_jac 26-12-2005 14:59:03

Gracias Marcos , mira eh colocado en la propiedad SessionName del TSession "Prueba" de manera que para los querys y tablas colocare en SessionName:="prueba".

Disculpa que sea insistente, pero con respecto a la propiedad DatabaseName de los query sera necesario redefinirlo ya qu le DataBase hace referencia de donde jalar los datos.

Espero tus comentarios.

marcoszorrilla 26-12-2005 15:19:17

El DatabaseName, si tienes un alias definido es dicho alias, de esta manera puedes utilizar una carpeta en desarrollo y otra en ejecución en donde vaya a ir instalado el programa.

Ejemplo:
Tu desarrollas en C:\delphi\programas\MiPrograma
y en el destino lo instalas en:
C:\Alfa

Basta con que establezcas el mismo nombre de alias del desarrollo pero la carpeta pertinente y sin tocar para nada el código ya tienes la aplicación funcionando.

Otra opción puede ser utilizar un INI.

Un Saludo.

Coco_jac 27-12-2005 04:14:00

Hola Marcos, mira es asi como tengo todo, todavia no lo prueba ya que no estoy en el trabajo, pero me gustaria que le dieras una revisada haber si algo esta incorrecto y lo pueda corregir.

F:\Aspelnew\sae30\S-METUSA (unidad compatida): es la ruta del SERVIDOR donde jalo los datos de las tablas PARADOX, esta definido asi, ya que existe un sistema implantado en mi empresa que toma esa ruta, bueno lo eh dejado asi. Aunque estoy pensando que UNICODE seria mejor.
Esto tengo en mi datamodule :
Código:

With MetusaSesion do begin                                //Tsession
NetFileDir := 'F:\Aspelnew\sae30\S-METUSA\NET';
PrivateDir := 'c:\Temp';
End;
 
MetusaSesion.sessionName:=Metusa; //defino una session
 
With MetusaDataBase do begin                        //Tdatabase
Params.Clear;
Params.Add('PATH='+'F:\Aspelnew\sae30\S-METUSA');
Params.Add('DEFAULT DRIVER=PARADOX');
Params.Add('ENABLE BCD=FALSE');
Connected := true;
End;

esta defido el LOCAL SHARE a true en el servidor, ah esta propiedad sera false en los clientes, corrigeme si estyo mal por favor
para el caso de los query tengo asi en mi modulo :

Código:


SQLquery.sessionName:=Metusa;                        // la session creada
SQLquery.databasename:='F:\Aspelnew\sae30\S-METUSA'
..................................

Espero tus comentarios. si esta bien todo lo planteado.
Gracias anticipadas.

cloayza 27-12-2005 14:18:03

Deberia ser asi
 
Yo solo haria el siguiente cambio:

Código:

With MetusaDataBase do
begin                        //Tdatabase
Params.Clear;
Params.Add('PATH='+'F:\Aspelnew\sae30\S-METUSA');
Params.Add('DEFAULT DRIVER=PARADOX');
Params.Add('ENABLE BCD=FALSE');
DatabaseName:='Nombre_Sistema_X.X';
Connected := true;
End;

SQLquery.sessionName:=Metusa;                        // la session creada
SQLquery.databasename:=MetusaDataBase.DataBaseName;

Feliz año nuevo a todos...
Christian
Concepcion-Chile

Lepe 27-12-2005 14:40:14

Código Delphi [-]
SQLquery.sessionName:=Metusa;

// lo mismo con 
MetusaSesion.sessionName:=Metusa; //defino una session

Ésto no debería compilar, ya que SessionName espera una cadena de texto.

Código Delphi [-]
SQLquery.sessionName:='Metusa';

// lo mismo con 
MetusaSesion.sessionName:='Metusa'; //defino una session

Tambien te aconsejaría que uses constantes para todos los strings esos, ya que te será más facil un cambio:

Código Delphi [-]
const
  NombreSession = 'Metusa';
  DirectorioBD = 'F:\Aspelnew\sae30\S-METUSA';
  DirectorioNET = DirectorioBD + '\NET';
  DirectorioPrivado = 'c:\temp';
Expande el uso de constantes hasta donde sea necesario.

El local Share está bien así.

saludos.

Coco_jac 27-12-2005 15:53:36

HOLA AMIGOS GRACIAS POR RESPONDER Y DAR SUS CONSEJOS ENTONCES QUEDARIA ASI, LO PROBARE DE INMEDIATO Y LES CUENTO QUE PASO, GRACIAS POR EL APOYO.

Código:


 
CONST
MTSession = 'Metusa';
DirectorioBD = 'F:\Aspelnew\sae30\S-METUSA';
DirectorioNET = DirectorioBD + '\NET';
DirectorioPrivado = 'c:\temp';
 
With MetusaSesion do begin       
NetFileDir := DirectorioNET;
PrivateDir := DirectorioPrivado;
End;
 
MetusaSesion.sessionName:=MTSession; //defino una session
 
With MetusaDataBase do
begin
Params.Clear;
Params.Add('PATH='+DirectorioBD);
Params.Add('DEFAULT DRIVER=PARADOX');
Params.Add('ENABLE BCD=FALSE');
DatabaseName:='MetusaStock';
Connected := true;
End;
 
SQLquery.sessionName:=MTSession;
SQLquery.databasename:=MetusaDataBase.DataBaseName;


Coco_jac 27-12-2005 16:45:01

Hola amigos acabo de probarlo y salio un error : Un known Database Alias : "Metusastock" tengo que crar un alias o que ?


Espero sus comentarios.

Gracias

marcoszorrilla 27-12-2005 16:49:44

Código Delphi [-]
DatabaseName:=DirectorioBD ;

Como verás tienes un error.

Un Saludo.

Coco_jac 27-12-2005 17:06:46

Gracias Marcos Todo Bien Hasta Ahora......................

Gracias A Todos Funciono Bien Seguire Probando.............


La franja horaria es GMT +2. Ahora son las 07:56:26.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi