Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-09-2004
CHiCoLiTa CHiCoLiTa is offline
Miembro
 
Registrado: may 2003
Posts: 102
Poder: 22
CHiCoLiTa Va por buen camino
Querys entre 2 BBDD diferentes

Hola, ando un poco espeso ultimamente y estoy con trabajando con Delphi 6 contra varias Bases de datos en SQL Server.

Mi inquietud en estos momentos es la siguiente:

Si quiero copiar los datos de una tabla que estan en la Base de Datos A (Tabla1) a otra tabla a la Base de Datos B (Tabla2), lo que hago es abrir la tabla o la query con los datos que quiero copiar, abrir la tabla destino y hago lo siguiente

Código Delphi [-]
while not Tabla1.Eof do
begin
      Tabla2.Append;
      for i := 0 to Pred(Tabla1.Fields.Count) do
             Tabla2.Fields[i].Value := Tabla1.Fields[i].Value;
      Tabla2.Post;
      Tabla1.Next;
end;

No se si se puede hacer de otra forma, pero ese problema ya lo tengo solventando

Ahora bien, y aqui llega mi gran duda. Teniendo la Base de Datos A y la Base de Datos B, quiero hacer una Query que cruce la Tabla1 en la BBDD A con la Tabla2 que esta en la BBDD B

Como consigo eso?

Por cierto, se me olvida decir que las conexion y tablas y querys que uso son ADO
Responder Con Cita
  #2  
Antiguo 15-09-2004
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
Para insertar registros, y hacer las consultas, te vale mas usando sql. Por ejemplo, tabla a en servidor1, tabla b en servidor2:

insert into servidor2.dbo.tablab (campo, campo)
select servidor1.dbo.tablaa (campo, campo)

igual para las consultas:

select A.campo, B.campo

from servidor1.dbo.tablauno A
INNER JOIN servidor2.dbo.tablados b ON A.campo1=B.campo1

me explique?
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #3  
Antiguo 16-09-2004
CHiCoLiTa CHiCoLiTa is offline
Miembro
 
Registrado: may 2003
Posts: 102
Poder: 22
CHiCoLiTa Va por buen camino
Ahhh, que pillin!! Nunca me habia funcioando eso porque no ponia el dbo

Muchas gracias por la respuesta

Con esta respuesta se me ocurren 2 nuevas preguntas,

- La primera es si eso mismo se puede hacer con 2 SGBD diferentes, por ejemplo con SQL Server con MS Access. Desde Access tienes la posibilidad de vincular tablas y hacer las consultas que quieras

- La segunda pregunta seria si para volcar datos de una Base de Datos a otra haciendo con una consulta directamente, con el INSERT INTO como podria tener una barra de progreso para controlar el tiempo

Supongo que habria que ejecutarla en un hilo a parte, porque sino se quedaria "colgado" el programa, y usando el eveto del query FetchProgress

Esto bien hecho funcionaria?
Responder Con Cita
  #4  
Antiguo 07-11-2005
mguixot mguixot is offline
Miembro
 
Registrado: may 2003
Posts: 102
Poder: 22
mguixot Va por buen camino
Hola,

no entiendo muy bien la sentencia Query que estais comentando. A que os referiís cuando hablais de Servidor1 y Servidor2?.
En mi caso, tengo 2 bbdd (Interbase 6) en el mismo equipo y necesito vocar el contenido de varias tablas de una bbdd a otra. Estoy intentando utilizar la sentencia insertada por Hector
Código:
insert into servidor2.dbo.tablab (campo, campo)
select servidor1.dbo.tablaa (campo, campo)
, pero no se si debo ejecutarla como un script y contra qué bbdd de las dos.
Alguien puede aclararme esto?.

Gracias a todos.
Responder Con Cita
  #5  
Antiguo 07-11-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Esa sentencia es para ms-sql server, no funciona con interbase.
Responder Con Cita
  #6  
Antiguo 07-11-2005
mguixot mguixot is offline
Miembro
 
Registrado: may 2003
Posts: 102
Poder: 22
mguixot Va por buen camino
Gracias por responder.

Sabes si en Interbase se puede utilizar alguna similar. O en para estos casos, está capado?.

Saludos
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 23:03:55.


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