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

inner join con tablas de distintas bds en asp

Estas en el tema de inner join con tablas de distintas bds en asp en el foro de ASP Clásico en Foros del Web. Hola amigos!! Hace un tiempo vengo buscando hacer esto y no puedo. En realidad encontré una solucion pero no me conforma del todo: copiar la ...
  #1 (permalink)  
Antiguo 08/01/2008, 16:16
 
Fecha de Ingreso: febrero-2003
Mensajes: 167
Antigüedad: 21 años, 3 meses
Puntos: 1
inner join con tablas de distintas bds en asp

Hola amigos!! Hace un tiempo vengo buscando hacer esto y no puedo. En realidad encontré una solucion pero no me conforma del todo: copiar la tabla de una bd a la otra bd y ahí hacer el inner join "localmente", luego hay que borrar la tabla creda ¿me explico?

Lo que busco es algo mas simple ¿alguien conoce un metodo mejor?

Muchas gracias!!
  #2 (permalink)  
Antiguo 08/01/2008, 16:23
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: inner join con tablas de distintas bds en asp

Buda, necesitamos datos, datos, mas datos, cual es el escenario exactamente?
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 08/01/2008, 16:36
 
Fecha de Ingreso: febrero-2003
Mensajes: 167
Antigüedad: 21 años, 3 meses
Puntos: 1
Re: inner join con tablas de distintas bds en asp

Escenario: pagina web ASP

La verdad es que nunca hice eso: tengo 2 bases de datos y quiero hacer un inner join con 2 tablas (una de cada bd)
Mi idea seria una consulta SQL, se que se puede hacer usando P.E.:
IN c :\carpeta\mibase.mdb
Pero no me funciona ya que abro la coneccion haciendo referencia a una sola bd, que es la unica forma que conozco:

cnn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("fantasy.mdb")

Espero que estos datos ayuden....gracias!!
  #4 (permalink)  
Antiguo 08/01/2008, 16:38
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: inner join con tablas de distintas bds en asp

Las dos bases de datos en Access?
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 08/01/2008, 16:48
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: inner join con tablas de distintas bds en asp

, cuales son tus campos... tienes alguna consulta creada?

Dark Master, es bueno para la psych, pero no todos
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #6 (permalink)  
Antiguo 08/01/2008, 16:52
 
Fecha de Ingreso: febrero-2003
Mensajes: 167
Antigüedad: 21 años, 3 meses
Puntos: 1
Re: inner join con tablas de distintas bds en asp

Si las 2 bases son de access.

tabla1: Campos: codigo, players
tabla2:Campos: codgo, players, nombre, apellido

se unen con el campo codigo
  #7 (permalink)  
Antiguo 08/01/2008, 16:58
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: inner join con tablas de distintas bds en asp

Te refiero a este link: http://www.tek-tips.com/viewthread.c...1223940&page=9
Básicamente la sintáxis es:

Código:
SELECT campos FROM
stringDeConexion1.tabla a INNER JOIN
stringDeConexion2.tabla b ON a.campo = b.campo
WHERE condiciones
Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #8 (permalink)  
Antiguo 08/01/2008, 17:02
 
Fecha de Ingreso: febrero-2003
Mensajes: 167
Antigüedad: 21 años, 3 meses
Puntos: 1
Re: inner join con tablas de distintas bds en asp

aaaah, esa me gustó!!...la voy a probar, despues les cuento

Gracias!!!!!!
  #9 (permalink)  
Antiguo 08/01/2008, 17:04
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: inner join con tablas de distintas bds en asp

Magic!
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #10 (permalink)  
Antiguo 08/01/2008, 17:08
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: inner join con tablas de distintas bds en asp

Cita:
Iniciado por Shiryu_Libra Ver Mensaje
Magic!
Nomás necesitaba exhiliar a AZ y al tigurón para poderme comunicar de nuevo con mis poderes extrasensoriales...
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #11 (permalink)  
Antiguo 11/01/2008, 12:30
 
Fecha de Ingreso: febrero-2003
Mensajes: 167
Antigüedad: 21 años, 3 meses
Puntos: 1
Re: inner join con tablas de distintas bds en asp

Les cuento que no lo pude hacer, tengo el siguiente problema: Para ejecutar la consulta sql tengo que hacer:

conexion.execute(sql), donde

sql="SELECT campos FROM
stringDeConexion1.tabla a INNER JOIN
stringDeConexion2.tabla b ON a.campo = b.campo
WHERE condiciones"

Ahora bien ¿que es conexion? (Me refiero a la de "conexion.execute(sql)")

Tendria que ser una conexion a las 2 bases?

Porque conexion1 es de la db1 y conexion2 de la db2...pero conexion¿que seria?

Gracias!!!!!!!!!!!!!
  #12 (permalink)  
Antiguo 11/01/2008, 12:38
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: inner join con tablas de distintas bds en asp

primero, defines las rutas a las bases de datos
Cita:
stringDeConexion1="PROVIDER=Microsoft.Jet.OLEDB.4. 0;DATA SOURCE=" & server.MapPath("base1.mdb;")
stringDeConexion2="PROVIDER=Microsoft.Jet.OLEDB.4. 0;DATA SOURCE=" & server.MapPath("base2.mdb;")
despues construyes tu SQL Query
Cita:
sql="SELECT campos FROM
stringDeConexion1.tabla a INNER JOIN
stringDeConexion2.tabla b ON a.campo = b.campo
WHERE condiciones"
una ves realizado, haces una consulta normal, a cualquiera de las 2 bases, automaticamente incorporara la base de datos secundaria

Cita:
conexion.open stringDeConexion1
set RS=conexion.execute(sql)
y el desarrollo normal que has hecho siempre

... sera eso lo que entendi????
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #13 (permalink)  
Antiguo 11/01/2008, 13:03
 
Fecha de Ingreso: febrero-2003
Mensajes: 167
Antigüedad: 21 años, 3 meses
Puntos: 1
Re: inner join con tablas de distintas bds en asp

Vamos bien...pero tengo una duda con esto:

Cita:
Iniciado por Shiryu_Libra Ver Mensaje
conexion.open stringDeConexion1
set RS=conexion.execute(sql)
lo que me estas queriendo decir es que donde dice 'conexion' puedo usar conexion1 o conexion2?
  #14 (permalink)  
Antiguo 11/01/2008, 13:09
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: inner join con tablas de distintas bds en asp

O sea habias copiado tal cual la sentencia?

Solo recordar que stringDeConexion1 y 2 son variables que se tienen que concatenar a la variable que forma el query...

Código:
sql="SELECT campos FROM " & _
stringDeConexion1&".tabla a INNER JOIN " & _
stringDeConexion2&".tabla b ON a.campo = b.campo " & _
" WHERE condiciones"
P.D. Conexion es una conexion a la base de datos que tienes que instanciar y abrir para llamar a su metodo execute y pasarle tu query.
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #15 (permalink)  
Antiguo 11/01/2008, 13:26
 
Fecha de Ingreso: febrero-2003
Mensajes: 167
Antigüedad: 21 años, 3 meses
Puntos: 1
Re: inner join con tablas de distintas bds en asp

Disculpá la rigidez de mi craneo....ya casi lo entiendo. Fijate acá:

Cita:
Iniciado por u_goldman Ver Mensaje
P.D. Conexion es una conexion a la base de datos que tienes que instanciar y abrir para llamar a su metodo execute y pasarle tu query.
"Conexion es una conexion a la base de datos "...¿a cualquiera de las 2?
¿no?
Es decir conexion puede ser tanto de la db1 como la db2...eso es lo que entiendo.

Ahora lo purebo en un ratito....gracias por la paciencia!!!!!!!
  #16 (permalink)  
Antiguo 11/01/2008, 13:36
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: inner join con tablas de distintas bds en asp



Relax Sid, esa es la forma...
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #17 (permalink)  
Antiguo 11/01/2008, 13:50
 
Fecha de Ingreso: febrero-2003
Mensajes: 167
Antigüedad: 21 años, 3 meses
Puntos: 1
Re: inner join con tablas de distintas bds en asp

jajaja ok oooooooooooooohm
  #18 (permalink)  
Antiguo 12/01/2008, 17:23
 
Fecha de Ingreso: febrero-2003
Mensajes: 167
Antigüedad: 21 años, 3 meses
Puntos: 1
Exclamación Re: inner join con tablas de distintas bds en asp

Bueno, les comento que no me fue bien y no encuentro el error. Este es el codigo:

Cita:
<%
Set cnn=Server.CreateObject("ADODB.connection")
cnn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("Fantasy.mdb")
Set rs=server.CreateObject("ADODB.Recordset")
rs.cursorType=3

sql="SELECT equipoActual, equipoProximo, Rank From "
sql=sql & "[DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("Fantasy.mdb") & "].jugadores A "
sql=sql & "INNER JOIN "
sql=sql & "[DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("59.mdb") & "].jugadores B "
sql=sql & "ON A.Codigo=B.Codigo "
sql=sql & "WHERE A.Codigo=1"
response.write(sql)

rs.open sql, cnn <-------------------- Linea del error

%>

y el error es este (muy raro!!):

Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Controlador ODBC Microsoft Access] Error de disco o de red.


Tambien probé poner los string de conexion sin corchetes (con comillas simples)...pero da el mismo error.
Ambas bd's se encuentran en la misma carpeta de la pc local (la carpeta wwwroot que siempre uso), ademas las cadenas de conexiones son las que siempre utilizo y funionan.

Agradecería mucho la ayuda de ustedes!!!!
  #19 (permalink)  
Antiguo 12/01/2008, 17:36
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: inner join con tablas de distintas bds en asp

No tengo access aqui, pero si gustas mandame un M.P. con alguna direccion donde descargar las bases de datos para probarlo.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #20 (permalink)  
Antiguo 14/01/2008, 13:08
 
Fecha de Ingreso: febrero-2003
Mensajes: 167
Antigüedad: 21 años, 3 meses
Puntos: 1
Re: inner join con tablas de distintas bds en asp

las deje aca : http://www.4shared.com/dir/5315456/5...4/sharing.html

Última edición por Siddhartha; 14/01/2008 a las 13:46
  #21 (permalink)  
Antiguo 14/01/2008, 14:52
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: inner join con tablas de distintas bds en asp

Ok señor buda, te tardaste mucho je je je, no pude conseguir unir las bases de datos, entonces lo que hice fué mas sencillo:

Tengo 2 bases de datos, db1.mdb y db2.mdb, ambas con la siguiente estructura:

Código:
tbl1
-------------
id  |  name

tbl2
--------------
id   |  name
Código:
tbl1 tiene
1  | one
2  | two
3  | three
4  | four

tbl2 tiene
1  | uno
2  | dos
3  | tres
4  | cuatro
Abres db1 File->External data->Link Tables
Busca db2 y selecciona tbl2

Despues el query es cualquier query para unir tablas:

Código:
<%
db1 = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.MapPath("db1.mdb")

strSQL = "SELECT a.*, b.* FROM tbl1 a INNER JOIN tbl2 b ON a.id = b.id "

Set rs = Server.CreateObject("ADODB.Recordset")
Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.Open db1

rs.Open strSQL, ObjConn, 3, 3

while not rs.EOF
	Response.Write(rs(0) & " | " & rs(1) & " | " & rs(2) & " | " & rs(3) & "<br />")
	rs.MoveNext
wend
%>
Y eso es todo espero te sirva.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #22 (permalink)  
Antiguo 14/01/2008, 15:35
 
Fecha de Ingreso: febrero-2003
Mensajes: 167
Antigüedad: 21 años, 3 meses
Puntos: 1
Re: inner join con tablas de distintas bds en asp

Ante todo muchas gracias por tu dedicacion!!

Lamentablemente creo que no me sirve por la sencilla raxon de que la tabla 59.mdb es una tabla de usuario creada por una codigo asp, mediante una consulta sql (create tabla blablabl). En la relidad, en la consulta no va a decir '59.mdb' sino "tablaUsuario", es decir una variable conteniendo el nombre de la tabla


Tu solucion me seria de utilidad si tuviera solo bds. En este caso una es fija (fantasy.mdb) que se "joinea" con las de usuario, que van creando nuevas, permanentemente (ojala asi sea!!)

AAAAAAAAAAUUUUUUUUUUUUUUUMMMMMMMMMMMMMMMM

Estoy en el horno?
  #23 (permalink)  
Antiguo 14/01/2008, 16:07
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: inner join con tablas de distintas bds en asp

Y no puedes hacer el link desde la base de datos que crea tablas dinamicas hacia la que esta fija?
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #24 (permalink)  
Antiguo 14/01/2008, 16:08
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: inner join con tablas de distintas bds en asp

Dark Master, no se podra crear un procedure, donde mande el nombre de la tabla como parametro para completar la union entre las tablas y realizar el codigo que has puesto?????

o estoy divagando?
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #25 (permalink)  
Antiguo 14/01/2008, 16:11
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: inner join con tablas de distintas bds en asp

Procedure en access? realmente lo desconozco, tengo siglos de no trabajar con esta base de datos; pero según lo que Buda explica, una base de datos crea las tablas dinámicas y se une con otra que es fija, pues para mí la solución es crear la tabla "linkeada" en la base de datos que crea las tablas dinámicas. Ya nos dirá mas cosas el señor buda...
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #26 (permalink)  
Antiguo 14/01/2008, 16:32
 
Fecha de Ingreso: febrero-2003
Mensajes: 167
Antigüedad: 21 años, 3 meses
Puntos: 1
Re: inner join con tablas de distintas bds en asp

La otra que se me ocurre es, en vez de crear la tabla con "create table" la puedo crear a mano una sola vez: 'TablaModeloUsuario.mdb' y la linkeo (algo que nunca hice en mi vida) y cada vez que un usuario se inscribe se copia con fso la tabla 'TablaModeloUsuario' y se le cambia el nombre con fso. ¿Que les parece?

Bueno hoy no puedo continuar....mañana probaré esto ultimo y les cuento los resultados obtenidos.

Han sido muy amables.

Si tiene algun consejo final antes de retirarme los escucho

  #27 (permalink)  
Antiguo 14/01/2008, 16:50
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: inner join con tablas de distintas bds en asp

Cita:
Iniciado por u_goldman Ver Mensaje
Procedure en access?...
Demonios, esta espuma esta brava, no me percate de esa parte
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #28 (permalink)  
Antiguo 15/01/2008, 19:44
 
Fecha de Ingreso: febrero-2003
Mensajes: 167
Antigüedad: 21 años, 3 meses
Puntos: 1
Re: inner join con tablas de distintas bds en asp

Bueno....U_Goldman, hice lo lo que me recomendaste: linkear las tablas de usuario a la fija y funciona perfectamente.
Luego estuve meditando un rato y se me apareció la siguiente imagen: Un dia voy a tener que cambiar de hosting (todo puede pasar) y qué va a pasar con esos links? Esos links estan relacionados con direcciones fisicas (al menos eso creo), y voy a tener que modificarlos manualmente.

No se que hacer, quisiera que esto funcione sin linkear las tablas.
  #29 (permalink)  
Antiguo 15/01/2008, 23:39
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: inner join con tablas de distintas bds en asp

Y por que no lo pruebas?
Cambialas de directorio, yo creo que ambas deben vivir en el mismo directorio y no deberias tener ningun problema, pero si lo hubiera, todo seria cuestion de volver a hacer los links; ahora si ya el estres es mucho, pues definitivamente access no es la solucion de base de datos, te recomendaria ir con MS SQL, ahi si que no tendrias que darle la vuelta como lo estamos haciendo.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #30 (permalink)  
Antiguo 16/01/2008, 05:52
 
Fecha de Ingreso: febrero-2003
Mensajes: 167
Antigüedad: 21 años, 3 meses
Puntos: 1
Re: inner join con tablas de distintas bds en asp

Bueno, me intereza pasarme a MS SQL....Que necesito?¿conseguir un programa para volver a crear las bds?¿modificar los string de conexion con el driver adecuado?
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 23:31.