Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Providers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-12-2010
gcaffe gcaffe is offline
Miembro
 
Registrado: oct 2004
Posts: 53
Poder: 20
gcaffe Va por buen camino
Conectar varias Bases de Datos con Server DataSnap

Hola amigos:
Agradecería me den sus opiniones o consejos sobre el siguiente tema.
Tengo una aplicación Cliente-Servidor funcionado perfectamente, el programa Servidor, instalado en el Servidor donde está la Base de Datos MSSQL, da servicio a los clientes accediendo a una Base de Datos (BD). Ahora se me propone que el programa pueda atender a varias empresas y como requisito necesario es que cada una de ellas tenga, físicamente, su propia BD. Y es aquí donde se me presenta el problema para seleccionar la mejor estrategia a implementar para atender a varias BD teniendo un solo Programa Servidor (SRV). Con el programa cliente no hay mayor problema en decidir que BD se debe usar.
Considerando que en el SRV hay un TSQLConnection donde se indica en su propiedad DataBase = DB1, las alternativas que estoy estudiando son las siguientes:
1. Duplicar el SRV, establecer otro puerto de conexión, cambiando la conexión TSQLConnection para que use otra BD y todos los componenetes dbExpress para que apunten al nuevo TSQLConnection . Pero aquí tendría que tener tantas copias de SRV ejecutándose en el Servidor como empresas hubiera además del problema de mantenimiento de los procedimientos almacenados (PROC) en las respectivas BD.
2. Duplicar el Data Module remoto del SRV, y modificar lo necesario en el TSQLConnection del nuevo Data Module según el punto 1. Aquí tendría una sola ejecución de SRV, siendo necesario hacer esta duplicación por cada nueva empresa que se desee incorporar.
3. Dejar el SRV tal como está, siendo necesario modificar todos los PROC, incluyendo como parámetro el nombre de la BD y tabla la cual el PROC atiende teniendo que armar la sentencia SQL en una variable para su ejecución final, algo así como el siguiente código ejemplo:
Código SQL [-]
DECLARE @DBase varchar(20);
DECLARE @dbTabla25 varchar(50);
DECLARE @SQL nvarchar(MAX);
SET @DBase = 'Ges120.dbo.';
SET @dbTabla25 = @DBase+'Tabla25';
SET @SQL = 'SELECT * FROM '+@dbTabla25;
EXECUTE SP_EXECUTESQL@SQL;

Con esta opción tendría que hacer una modificación importante en los PROC y en aquellos que tengo escritos en el programa cliente, pero la ventaja sería la del mantenimiento posterior y no importaría la cantidad de empresas.
No me he decidido todavía por ninguna de ellas, por eso recurro a ustedes por si me pueden indicar alguna otra alternativa que sea segura, su implantación sea más sencilla y el mantenimiento posterior normal.
Muchas gracias.
Responder Con Cita
 



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
consulta a varias bases de datos carlos gonzalez Conexión con bases de datos 13 04-10-2007 19:51:41
Crear una transacción que modifique varias bases de datos Borjaserrano Firebird e Interbase 4 17-09-2007 08:54:58
comparacion entre varias bases de datos edelphi Conexión con bases de datos 9 26-02-2007 23:51:26
varias bases de datos... como?? User_baja1 MS SQL Server 3 25-05-2005 14:27:41
Es posible tener varias bases de datos.... Carlosguiland MySQL 5 24-06-2004 20:39:10


La franja horaria es GMT +2. Ahora son las 22:14:53.


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