Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-11-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.449
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Lo que pretendes más o menos se puede conseguir con una sentencia SQL; No comentas la Base de Datos que utilizas, as´ñi que puede variar la sentencia, pero sería algo así:

Código SQL [-]
Select Tabla1.Nombre, Tabla2.Nombre, Tabla1.Precio as P1, Tabla2.Precio as P2  
from Tabla1 FULL JOIN Tabla2 on Tabla1.Cod=Tabla2.Cod

Esto es en la teoría. Luego hay que saber el caso concreto en que te encuentras. A veces, tal y como tú comentas, una solución que en teoría funciona, puede no ser viable a loa hora de la verdad por muchísimas razones (falta de velocidad, volumen de datos,...)

Tal vez si nos explicaras el caso real y lo que necesitas hacer, te podamos dar una solución más adecuada. O tal vez orientarte por otro camino para llegar a conseguir lo mismo que necesitas.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 30-11-2009 a las 15:50:30.
Responder Con Cita
  #2  
Antiguo 30-11-2009
Avatar de pnikkosis
pnikkosis pnikkosis is offline
Miembro
 
Registrado: nov 2009
Ubicación: Buenos Aires
Posts: 15
Poder: 0
pnikkosis Va por buen camino
como explique arriba, no es una sola base de datos; asi que eso no se puede hacer; no son dos tablas en una base, son multiples bases con la misma tabla, creo que eso quedo bien explicado.
un select normal no me puede comprender mas de una base ya que con un componente de delphi no se pueden hacer multiples conexiones, de ahi a que tengo que hacer un select de cada tabla, crear un script y correrlo en la base nueva.

te agradezco la ayuda igualmente ^_^
Responder Con Cita
  #3  
Antiguo 30-11-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 20
rgstuamigo Va por buen camino
Arrow

Cita:
Empezado por pnikkosis Ver Mensaje
como explique arriba, no es una sola base de datos; asi que eso no se puede hacer; no son dos tablas en una base, son multiples bases con la misma tabla, creo que eso quedo bien explicado.
un select normal no me puede comprender mas de una base ya que con un componente de delphi no se pueden hacer multiples conexiones, de ahi a que tengo que hacer un select de cada tabla, crear un script y correrlo en la base nueva.

te agradezco la ayuda igualmente ^_^
Aunque hubiese sido bueno que nos comentaras Que servidor de Base de datos usas(MySQL,Oracle,MS sql Server,Firebird,etc,etc.) ¿cual?

Pues, tranquilamente puedes hacer tu consulta SQL aunque sea de multiples base de datos por ejemplo;( siguiendo el ejemplo de Neftali):
Código SQL [-]
Select
MyBaseName1.Tabla1.Nombre,
MyBaseName2.Tabla2.Nombre,
MyBaseName1.Tabla1.Precio as P1,
MyBaseName2.Tabla2.Precio as P2,
from MyBaseName1.Tabla1 FULL JOIN MyBaseName2.Tabla2 on (MyBaseName1.Tabla1.Cod=MyBaseName2.Tabla2.Cod);
o si quieres mas cortita(usando alias)
Código SQL [-]
Select T1.Nombre,T2.Nombre,T1.Precio as P1, T2.Precio as P2
from MyBaseName1.Tabla1 T1 FULL JOIN MyBaseName2.Tabla2 T2 on (T1.Cod=T2.Cod);
.
Desde luego debes tener los privilegios adecuados para ambas base de datos y sus respectivas tablas.
Nota: Probado con MySQL y los componentes Zeos (aunque no exactamente la misma consulta)
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #4  
Antiguo 30-11-2009
Avatar de pnikkosis
pnikkosis pnikkosis is offline
Miembro
 
Registrado: nov 2009
Ubicación: Buenos Aires
Posts: 15
Poder: 0
pnikkosis Va por buen camino
Hay algo que yo no entiendo todavia, o evidentemente no lo aprendi.

Segun lo que estuve haciendo, para conectarme a una base firebird (lo puse al final de todo que la estoy usando) lo que hago es poner en delphi 3 componentes, un IBdatabase con los datos de la base, un IBquery linkeado a esa base y un DataSource linkeado al ibquery. Cuando quiero hacer una consulta, hago IBQuery1.SQL := 'select blablablablablabla'; para ver los resultados pongo un DBGrid linkeado al datasource.
Yo en ese query no puedo hacer referencia a dos bases diferentes, porque ese query esta linkeado a una sola base; al igual que el DBgrid no puedo linkearlo a mas de un datasource.
Responder Con Cita
  #5  
Antiguo 30-11-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 20
rgstuamigo Va por buen camino
Arrow

Cita:
Empezado por pnikkosis Ver Mensaje
Hay algo que yo no entiendo todavia, o evidentemente no lo aprendi.

Segun lo que estuve haciendo, para conectarme a una base firebird (lo puse al final de todo que la estoy usando) lo que hago es poner en delphi 3 componentes, un IBdatabase con los datos de la base, un IBquery linkeado a esa base y un DataSource linkeado al ibquery. Cuando quiero hacer una consulta, hago IBQuery1.SQL := 'select blablablablablabla'; para ver los resultados pongo un DBGrid linkeado al datasource.
Yo en ese query no puedo hacer referencia a dos bases diferentes, porque ese query esta linkeado a una sola base; al igual que el DBgrid no puedo linkearlo a mas de un datasource.
Entiendo lo que mencionas, pero lo que estoy proponiendo es hacer la referencias a las dos bases de datos en la consulta SQL, tal cual como te he puesto en el ejemplo.Tan solo reemplaza MyBaseName1,MyBaseName2,Table1,Table2,por los nombres de tus Bases de Datos y Tablas respectivamente.Al menos probalo...y luego nos comentas..
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #6  
Antiguo 01-12-2009
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 28
Delphius Va camino a la fama
Si es Firebird lamentablemente ese tipo de consulta no funcionará, a menos que las tablas pertenezcan a una misma base de datos.

En Firebird, hasta el momento, no se pueden realizar consultar entre dos o más bases de datos. Se espera que para la versión 2.5 o 3 se añada dicha característica.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #7  
Antiguo 01-12-2009
Avatar de pnikkosis
pnikkosis pnikkosis is offline
Miembro
 
Registrado: nov 2009
Ubicación: Buenos Aires
Posts: 15
Poder: 0
pnikkosis Va por buen camino
Cita:
Empezado por Delphius Ver Mensaje
Si es Firebird lamentablemente ese tipo de consulta no funcionará, a menos que las tablas pertenezcan a una misma base de datos.

En Firebird, hasta el momento, no se pueden realizar consultar entre dos o más bases de datos. Se espera que para la versión 2.5 o 3 se añada dicha característica.

Saludos,
Es lo que yo estaba diciendo. De ahi a que quiero hacer la consulta y generar un script con lo que me devuelva, para poder asi cargarlo en la base que va a incluir los datos de todas las demas.
Responder Con Cita
  #8  
Antiguo 01-12-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.449
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por pnikkosis Ver Mensaje
un select normal no me puede comprender mas de una base ya que con un componente de delphi no se pueden hacer multiples conexiones
Sí se puede en algunos servidores y con algunos componentes, de ahí mi pregunta.
Sin ir más lejos en SQL Server puedes utilizar LINKED SERVERS para lanzar una consulta como la que necesitas (que involucre varias tablas de varios servidores).
Desconozco si en otros SGBD's hay algo similar.

AÑADO: Veo que rgstuamigo ya ha contestado.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Tomar datos del lector de código de barras jam888 OOP 4 22-03-2010 17:53:03
Tomar datos de otra aplicacion dblx API de Windows 4 23-12-2008 01:16:38
Tomar datos de excel vinagre3ro Internet 2 04-10-2006 09:59:28
Hola soy muy nueva en esto de las bases de datos y deseo imprimir tablas nuri Impresión 1 05-07-2005 19:49:31
Como mostrar los datos para luego insertarlos? judoboy OOP 8 14-05-2003 09:51:51


La franja horaria es GMT +2. Ahora son las 08:50:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi