Foros del Web » Programación para mayores de 30 ;) » Java »

duda con consulta

Estas en el tema de duda con consulta en el foro de Java en Foros del Web. Que tal, Tengo una duda con una consulta en sql Server y java Normalmente nosotros hacemos consultas de este tipo String sql ="select * from ...
  #1 (permalink)  
Antiguo 10/04/2013, 15:26
 
Fecha de Ingreso: abril-2013
Mensajes: 7
Antigüedad: 11 años
Puntos: 0
duda con consulta

Que tal,

Tengo una duda con una consulta en sql Server y java

Normalmente nosotros hacemos consultas de este tipo

String sql ="select * from empleados"
PreparedStatement cmd = cn.prepareStatement(sql);
Statement st = cn.createStatement();
ResultSet rs = cmd.executeQuery();

Pero que pasa cuando hacemos consultas usando inner join hacia
2 bases de datos diferentes.

String sql ="select * from base1.dbo.tabla inner join base2.dbo.tabla ON base1.dbo.tabla.Id=base2.dbo.tabla.id"
PreparedStatement cmd = cn.prepareStatement(sql);
Statement st = cn.createStatement();
ResultSet rs = cmd.executeQuery();


lo que pasa es que cuando hacemos una consulta a una sola base de datos
ocupamos una sola conexion pero cuando es una consulta de 2 tablas de 2 bases
diferentes forzozamente tenemos que hacer 2 conexiones

Alguien sabe como puedo hacer esto ????????

Estoy usando Java + sql Server.
  #2 (permalink)  
Antiguo 10/04/2013, 17:24
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: duda con consulta

Muy simple, en el servidor al cual te conectas, debe tener definido un LINKED SERVER, hacia el segundo servidor.
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 10/04/2013, 22:45
 
Fecha de Ingreso: abril-2013
Mensajes: 7
Antigüedad: 11 años
Puntos: 0
Respuesta: duda con consulta

Que tal, podrias poner un ejemplo de LINKED SERVER

Gracias
  #4 (permalink)  
Antiguo 11/04/2013, 08:10
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: duda con consulta

Lo pondria, pero tambien podrias buscar en GOOGLE sobre el tem, ¿no crees?, y ya vienes con mas dudas al respecto.
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 11/04/2013, 11:27
 
Fecha de Ingreso: abril-2013
Mensajes: 7
Antigüedad: 11 años
Puntos: 0
Respuesta: duda con consulta

Que tal, estuve leyendo un poco de linked server pero lo que veo es que lo que hace es que ya tienes que tener 2 instancias creadas por ejemplo.

lo que pasa es que yo tengo en una sola instancia mis bases de datos.

sera posible dejarlo asi o tengo que crear otra instancia y ahi poner mi otra base de datos ?????
  #6 (permalink)  
Antiguo 11/04/2013, 11:35
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: duda con consulta

aqui el problema es que tu cadena de conexion la estas haciendo sobre una sola base de datos, no recuerdo si puedes hacer una cadena de conexion por servidor sin especificar la base de datos asi podrias hacerla solo con una :)

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 11/04/2013, 12:56
 
Fecha de Ingreso: abril-2013
Mensajes: 7
Antigüedad: 11 años
Puntos: 0
Respuesta: duda con consulta

Gracias buscare esa opcion que dices,
seria hacer una forma de conexion para ocupar todas las bases de datos
que tengo en mi Instancia
  #8 (permalink)  
Antiguo 11/04/2013, 14:54
 
Fecha de Ingreso: abril-2013
Mensajes: 7
Antigüedad: 11 años
Puntos: 0
Respuesta: duda con consulta

ya busque pero no encuentro nada con esa informacion :/
tendras algun ejemplo, te lo agradeceria mucho.
  #9 (permalink)  
Antiguo 12/04/2013, 09:15
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: duda con consulta

Si tus bases estan en UNA SOLA INSTANCIA, cual es el problema???

Código SQL:
Ver original
  1. SELECT * FROM MyBase1.dbo.MyTabla1 t1 INNER JOIN MyBase2.dbo.MyTabla2 t2
  2. ON t1.id = t2.id
__________________
MCTS Isaias Islas
  #10 (permalink)  
Antiguo 12/04/2013, 09:19
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: duda con consulta

Iislas tiene mucha razon, porque no haces la conexion a la base de datos master y tus querys los haces con tablas con 3 nombres, base.schema.table
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #11 (permalink)  
Antiguo 12/04/2013, 11:14
 
Fecha de Ingreso: abril-2013
Mensajes: 7
Antigüedad: 11 años
Puntos: 0
Respuesta: duda con consulta

a ver para ser mas claros porque quiza el problema es otra cuestion y no mi cadena de conexion

Connection cn;
ConexionLocal con = new ConexionLocal();
cn = con.conectarBase;


String sql = "SELECT * FROM MyBase1.dbo.MyTabla1 t1 INNER JOIN MyBase2.dbo.MyTabla2 t2
ON t1.id = t2.id "

PreparedStatement cmd = cn.prepareStatement(sql);
Statement st = cn.createStatement();
ResultSet rs = cmd.executeQuery();

Cuando la ejecuto en el sql server si me devuelve valores, lo que me dice que esta bien la consulta.

pero cuando la ejecuto en Java, ya no me devuelve nada.

y por lo que he investigado yo puedo usar mi conexion ConectarBase sin ningun problema
pero algo pasa que no lee de forma correcta la consulta.

Gracias.
  #12 (permalink)  
Antiguo 12/04/2013, 11:53
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: duda con consulta

entonces es problema de java no de sql server, algun moderador que mueva el tema?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: select, server, sql, sql-server, tabla
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 02:55.