Foros del Web » Programando para Internet » ASP Clásico »

select de 3 tablas en 3 bases de datos distintas

Estas en el tema de select de 3 tablas en 3 bases de datos distintas en el foro de ASP Clásico en Foros del Web. hola todos.. tengo una consulta la cual enlaza 3 tablas de 3 bases de datos MYSQL distintas.. asi @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ASP: Ver original SELECT ...
  #1 (permalink)  
Antiguo 06/08/2009, 12:36
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 4 meses
Puntos: 4
select de 3 tablas en 3 bases de datos distintas

hola todos..

tengo una consulta la cual enlaza 3 tablas de 3 bases de datos MYSQL distintas..

asi

Código ASP:
Ver original
  1. SELECT t1.campo, t2.campo, t3.campo
  2. FROM trazabilidad.trazabilidad t1, telemercadeo.pedidos t2, bodega.items t3;


ahora el problema viene a la hora de realizar la conexion en asp
dado que la tengo asi: pero no se a que base de datos conectarme o como seria en este caso..

Código ASP:
Ver original
  1. Dim rs, con, conx
  2. function conx_bd(nombre_bd)
  3. con = "DRIVER={MySQL ODBC 3.51 Driver};"_
  4. & "SERVER=localhost;"_
  5. & "DATABASE="&nombre_bd&";" _
  6. & "UID=root;PWD=123456; OPTION=35;"
  7. set conx = Server.Createobject("adodb.connection")
  8. conx.open con
  9. conx_bd = conx
  10. end function
  11.  
  12.  
  13. Dim sql, rs
  14. sql = "SELECT t1.campo, t2.campo, t3.campo
  15. FROM trazabilidad.trazabilidad t1, telemercadeo.pedidos t2, bodega.items t3"
  16. Set rs = Server.CreateObject("ADODB.Recordset")
  17. rs.Open sql, conx_bd("aqui_nombre_bd"), 3, 3
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #2 (permalink)  
Antiguo 06/08/2009, 13:09
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
Respuesta: select de 3 tablas en 3 bases de datos distintas

mmm okey.

si deseas hacer un JOIN entre tres tablas que estan entres servidores distintos, tenes que hacer que los SERVIDORES hablen entre ellos.

por ejempo en SQL SERVER, podes ir al ENTERPRISE MANAGER y en SEGURIDAD, SERVIDORES VINCULADOS, le colocas los servidores con los que quieren que este converse, tb le peudes setear el usuario y que password usar para conectarse internamente.

luego en ASP haces la conexion solo a UN servidor y no a tres.

y en la sentencia SQL usas esta nomenclatura

select * from servidor.basededatos.dueño.tabla as a, servidor2.basededatos.dueño.tabla as b where .....

algo asi
  #3 (permalink)  
Antiguo 06/08/2009, 13:12
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
Respuesta: select de 3 tablas en 3 bases de datos distintas

ah! y si las BDs estan en solo un servidor, entonces solo tenes que hacer una conexion a ese server y usar un suarioque tenga acceso a esas 3 bd's y usar la nomenclatura

select * from basededatos.dueño.tabla as a, basededatos.dueño.tabla as b where .....


y ya.
  #4 (permalink)  
Antiguo 06/08/2009, 13:19
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 4 meses
Puntos: 4
Respuesta: select de 3 tablas en 3 bases de datos distintas

mm la verdad estan en un solo servidor.. pero no entendi muy bien como seria la parte de la conexion..
y uso Mysql.

esta es la conexion que uso

Dim rs, con, conx
function conx_bd(nombre_bd)
con = "DRIVER={MySQL ODBC 3.51 Driver};"_
& "SERVER=localhost;"_
& "DATABASE=nombre_bd;" _
& "UID=root;PWD=123456; OPTION=35;"
set conx = Server.Createobject("adodb.connection")
conx.open con
conx_bd = conx
end function

no sabria qeu cambiarle para ke funcionara como dices.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #5 (permalink)  
Antiguo 06/08/2009, 13:56
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
Respuesta: select de 3 tablas en 3 bases de datos distintas

haz la siguiente prueba.

ve a tu BD y crea una VISTA asi

SELECT * FROM BD1.DUEÑO.TABLA AS A , BD2.DUEÑO.TABLA AS B WHERE A.ID = B.ID

o algo asi.

luego le haces un simple sleect a esa vista y ya.
  #6 (permalink)  
Antiguo 06/08/2009, 14:00
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 4 meses
Puntos: 4
Respuesta: select de 3 tablas en 3 bases de datos distintas

mmm tengo mysql 4.1 creo ke no se pueden crear vistas en esta version.. hay alguna otra forma?
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #7 (permalink)  
Antiguo 06/08/2009, 14:02
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
Respuesta: select de 3 tablas en 3 bases de datos distintas

AUN no se pueden hacer vistas?
plop!!!


claro.... hacer la misma sentencia sql anterior , pero directamente.

haz la prueba!


Código asp:
Ver original
  1. Dim sql, rs
  2.  
  3. sql = "SELECT * FROM BD1.DUEÑO.TABLA AS A , BD2.DUEÑO.TABLA AS B WHERE A.ID = B.ID "
  4.  
  5. Set rs = Server.CreateObject("ADODB.Recordset")
  6.  
  7. rs.Open sql, conx_bd("aqui_nombre_bd"), 3, 3
  #8 (permalink)  
Antiguo 06/08/2009, 14:04
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: select de 3 tablas en 3 bases de datos distintas

Bueno, no hagas una vista, simplemente ejecuta esa consulta en el gestor de MySQL que estés usando (MySQL Admin, Yogy, etc)
  #9 (permalink)  
Antiguo 06/08/2009, 14:15
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 4 meses
Puntos: 4
Respuesta: select de 3 tablas en 3 bases de datos distintas

uso MySQL Front
e intente con esta sentencia

SELECT * FROM trazabilidad.root.trazabilidad AS A , telemercadeo.root.pedidos AS B
WHERE A.num_documento = B.num_factura;

pero me dice error de sintaxis..
cuando dices DUEÑO quiere decir el usuario root?
o que estare colocando mal.
bd.usuario.tabla
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #10 (permalink)  
Antiguo 06/08/2009, 14:23
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 4 meses
Puntos: 4
Respuesta: select de 3 tablas en 3 bases de datos distintas

bueno me funciono sin el root asi

SELECT * FROM fullclean_trazabilidad.trazabilidad A, fullclean_telemercadeo.pedidos B
WHERE A.num_documento = B.num_factura;

listo ya parece que funciona asi


SELECT A.num_documento as num_doc, b.id_item as item
FROM fullclean_trazabilidad.trazabilidad A, fullclean_telemercadeo.pedidos B
WHERE A.num_documento = B.num_factura


hare mas pruebas y cualqueir cosa les comento
mil gracias por su tiempo y colaboracion.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #11 (permalink)  
Antiguo 06/08/2009, 14:27
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
Respuesta: select de 3 tablas en 3 bases de datos distintas

todo sea por un poquitito de karma positivo =P
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:08.