PDA

Ver la Versión Completa : Union de dos conexiones


ElDioni
04-01-2006, 10:25:58
Hola, tengo un programa que tenia una base de datos, dentro de esta base de datos tenia todas las tablas que necesitaba mas tres tablas más que estaban vinculadas a otra base de datos que era la de una agenda, vinculaba la tabla de clientes, la de agentes y la de provincias. Bueno, el caso es que yo me hice una copia de estas bbdd para realizar el programa por lo que los vinculos apuntaban a una copia de la agenda. lo que ocurre es que la tabla de agenda esta vinculada a muchos programas y al vincular el mio una vez ya terminado este se relentizó muchisimo, el caso es que mi objetivo es quitar las tablas vinculadas y hacer una conexión nueva directamente a la bbdd de agenda para mejorar la velocidad de acceso. Mi problema es que algunas de las consultas que tenía en los adoquery hacían referencia a las tablas de clientes y agentes junto con otras tablas de mi projecto, como puedo ahora realizar una consulta en donde una dos bases de datos para sacar los datos de la bbdd de ageda y la de presupuestos que es la otra. Creo que se puede hacer por sql pero no estoy seguro, si alguien lo sabe por favor agradecería mucho su ayuda, trabajo con delphi 7 y access 97

delphi.com.ar
04-01-2006, 13:25:18
...como puedo ahora realizar una consulta en donde una dos bases de datos para sacar los datos de la bbdd de ageda y la de presupuestos que es la otra.
En concreto quieres hacer una consulta entre tablas de diferentes bases de datos sin utilizar tablas vinculadas... Acces te lo permite mediante el uso de la instrucción IN!


SELECT *
FROM TABLA_LOCAL, TABLA_REMOTA IN "C:\Base2.mdb"


Saludos!

ElDioni
04-01-2006, 15:56:09
Ya probé eso que me dices del in pero pasa lo siguiente

SELECT *
FROM Presupuestos, clientes IN '\\Servidor-new\project\delphi\presupuestos\agenda.mdb'
WHERE Presupuestos.codcli=clientes.codcli;

la tabla de presupuestos es la local que esta en la base de datos de presupuesto y la de agenda.mdb es la de los clientes,agentes, etc, me guarda la consulta sin ningún problema pero al ejecutarla me dice que no existe la tabla de presupuestos, yo supongo que busca la de presupuestos en la bbdd de agenda.
A ver si descubris porque me pasa, y gracias a los que se han molestado en leer y contestar a mis dudas

delphi.com.ar
05-01-2006, 14:23:43
...yo supongo que busca la de presupuestos en la bbdd de agenda...

Si no no defines explícitamente de donde tomar la tabla, la toma de la base de datos local, donde has establecido la conexión.
Desconozco que te puede estar fallando...

ElDioni
05-01-2006, 14:43:15
SELECT * FROM [presupuesto.mdb].presupuestos,[agenda.mdb].clientes in '\\Servidor\delphi\presupuestos\agenda.mdb' (file://\\Servidor\delphi\presupuestos\agenda.mdb') where presupuestos.codcli=clientes.codcli

eso lo he puesto en el text del adoquery y el connection string lo siguiente

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\Servidor\Delphi\Presupuestos\presupuesto.mdb;Persist Security Info=False,Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\Servidor\Delphi\presupuestos\agenda.mdb;Persist Security Info=False

de esta forma no se si es lo mas correcto pero asi me funciona.
Gracias por molestarse en ayudarme y espero que esto que he puesto sirva para alguien