Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

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: 24
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: 25
__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: 24
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: 24
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 Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví 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: 24
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


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


La franja horaria es GMT +2. Ahora son las 06:18:25.


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