Buen dia, estoy haciendo varias pruebas en SQL y quisera saber como definir y trabajar con un sistema que sea multiempresa. Es decir que en el SQL solo se definira una base de datos, pero por cada nueva empresa cargada se generen los archivos en un lugar que defina el usuario. Por ej.: la base con los archivos comunes (utilizados por todas las empresas) estará en \\server\sistema, la empresa 1 tendra sus archivos en \\server\sistema\empresa1, la empresa 2 en \\server\sistema\empresa2, etc......
Esto ya lo estaba utilizando con archivos TPS, definiendo una variable global en Full Pahname y me funciona perfecto. Pero no lo estoy pudiendo implementar en SQL (ya que estoy recien comenzando a utilizarlo).
Agradecería una ayuda.
Gracias.
Saludos.
Una base por empresa
-
- Novato
- Mensajes: 24
- Registrado: Vie Sep 07, 2012 11:15 pm
- Contactar:
- Mauricio
- Desarrollador de Clarion
- Mensajes: 1125
- Registrado: Dom Feb 06, 2011 9:34 am
- Ubicación: España
- Contactar:
Re: Una base por empresa
Y por qué querés hacerlo así? Una forma sería poner en todas las tablas un código de empresa y filtrar por ese código una vez seleccionada la empresa. De esa forma tendrías solo una base de datos.
Pero si no querés hacerlo de esa manera, entonces creás una base de datos por cada empresa, al iniciar el programa y antes de abrir ninguna tabla de SQL preguntás con qué empresa va a trabajar (deberías tener una tabla TPS con el nombre de la empresa y el nombre de la base de datos). Una vez hecho esto cambiás tu cadena de conexión de modo que tome la base de datos de la empresa seleccionada.
Pero si no querés hacerlo de esa manera, entonces creás una base de datos por cada empresa, al iniciar el programa y antes de abrir ninguna tabla de SQL preguntás con qué empresa va a trabajar (deberías tener una tabla TPS con el nombre de la empresa y el nombre de la base de datos). Una vez hecho esto cambiás tu cadena de conexión de modo que tome la base de datos de la empresa seleccionada.
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog
www.tdcsoftware.com y www.clarioneros.com/blog
-
- Novato
- Mensajes: 24
- Registrado: Vie Sep 07, 2012 11:15 pm
- Contactar:
Re: Una base por empresa
Gracias Mauricio por tu respuesta.
Tu primer opcion la habia contemplado.
Con respecto a la segunda opcion (comprendi perfectamente tu idea); es posible tener 2 cadenas de conexión simultaneas? Te explico: base con los archivo comunes utilizados por todas las empresas (basecomun), ej.: Clientes y Provedores (cadena de conexion 1). Base utilizada por empresa 1 (baseemp1), por la empresa 2 (baseemp2),....,ej.:Plan de Cuentas, Facturas Vtas (cadena de conexion 2) aclaro todas las bases de empresas tendran la misma cadena de conexión, ya que esta será asignada, como dijo Mauricio, en el archivo TPS de empresa.
Tener en cuenta que cuando estoy dentro de una base de empresa (baseemp1) cargando facturas, necesito consultar la tabla de clientes o proveedores que se encuentra en otra base (basecomun).
Mi idea es:
Declarar una variable global en owner name !Glo:ConecionComun para la base cumun (basecomun) y otra variable !Glo:ConexionEmpr para la bases de empresas (baseemp1), para poder trabajar con ambas al mismo tiempo.
Esto es posible?
Espero haberme explicado.
Saludos.
Gracias
Tu primer opcion la habia contemplado.
Con respecto a la segunda opcion (comprendi perfectamente tu idea); es posible tener 2 cadenas de conexión simultaneas? Te explico: base con los archivo comunes utilizados por todas las empresas (basecomun), ej.: Clientes y Provedores (cadena de conexion 1). Base utilizada por empresa 1 (baseemp1), por la empresa 2 (baseemp2),....,ej.:Plan de Cuentas, Facturas Vtas (cadena de conexion 2) aclaro todas las bases de empresas tendran la misma cadena de conexión, ya que esta será asignada, como dijo Mauricio, en el archivo TPS de empresa.
Tener en cuenta que cuando estoy dentro de una base de empresa (baseemp1) cargando facturas, necesito consultar la tabla de clientes o proveedores que se encuentra en otra base (basecomun).
Mi idea es:
Declarar una variable global en owner name !Glo:ConecionComun para la base cumun (basecomun) y otra variable !Glo:ConexionEmpr para la bases de empresas (baseemp1), para poder trabajar con ambas al mismo tiempo.
Esto es posible?
Espero haberme explicado.
Saludos.
Gracias
- Mauricio
- Desarrollador de Clarion
- Mensajes: 1125
- Registrado: Dom Feb 06, 2011 9:34 am
- Ubicación: España
- Contactar:
Re: Una base por empresa
Si, se puede.
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog
www.tdcsoftware.com y www.clarioneros.com/blog
-
- Novato
- Mensajes: 24
- Registrado: Vie Sep 07, 2012 11:15 pm
- Contactar:
Re: Una base por empresa
Gracias Mauricio nuevamente.
Saludos.
Saludos.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado