Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > PostgreSQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-02-2011
ToritoCapo ToritoCapo is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 14
Poder: 0
ToritoCapo Va por buen camino
Insertar en 2 Bases distintas en la misma operación

Hola a todos !!!! Esta es mi primera consulta.
Le paso los parametros a un procedimiento almacenado de postgres, para que inserte datos en varias tablas de la Base1.
Queria saber como puedo hacer para insertar un par de datos también en una tabla de la Base2 que está en el mismo postgres.

Puedo acceder a una base o a la otra, cerrando la conexión de una y volver a conectarme con la otra, pero de esta manera es MUY engorroso porque hay veces que hay que cambiar para un lado y el otro en la misma operación muchisimas veces, por eso queria que me ayuden a hacerlo con la misma conexión directamente desde postgres.

Saludos!!!
Responder Con Cita
  #2  
Antiguo 24-02-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Bueno... suponiendo que tu primera base de datos se llame "MyBD1" y tu segunda base de datos "MyBD2" entonce se puede acceder a las tablas de cualquier BD de la siguiente forma:

Código SQL [-]
Insert into MyBD1.MyTable values (..,..,...etc);
Código SQL [-]
Insert Into MyBD2.OtraTabla values(..,..,...etc);
Es decir estando trabajando en una base de dato específica, puedo acceder a otra BD con tan solo anteponiendo el nombre de la BD antes del nombre de la tabla
Ésto al menos así fucniona en MySQL, supongo que en PostGreSQL tambien debe funcionar así, ya que segun tengo entendido es un Monstruo.
Y ésto sin estar cerrando y abriendo nueva conexion...
Pruebalo...
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 25-02-2011
ToritoCapo ToritoCapo is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 14
Poder: 0
ToritoCapo Va por buen camino
Gracias por tu ayuda!!!!

Intenté hacer lo que me dijiste, pero no funciona, me tira este mensaje: cross-database references are not implemented : "db1.public.tabla1"

En algún lugar lei que habia que utilizar algo llamado DBLINK o algo asi, pero sigo sin poder lograrlo.
Alguna otra idea o alguien que sepa como utilizar ese dblink ???

Gracias nuevamente.
Saludos.
Responder Con Cita
  #4  
Antiguo 25-02-2011
rhino0nt rhino0nt is offline
Miembro
 
Registrado: jun 2008
Posts: 25
Poder: 0
rhino0nt Va por buen camino
Utilizar dos bases de datos en PostgreSQL

No sé que tan compleja necesites tu solución, sin embargo esto se puede abordar desde varios frentes:

1. Utilizar un servicio de interconexión como DBLink que no te lo recomiendo porque el costo de las transacciones es alto y no es muy confiable que digamos, al parecer tiende a caerse, yo en lo personal no lo he utilizado pero las personas que lo han hecho reportan malas experiencias. Si requieres mayor información puedes buscar en la lista de correo de PostgreSQL en español, seguro que alguien te ayuda.

2. Utilizar dos conexiones a las bases de datos. No se que controles utilices, yo he utilizado los controles de DevArt con PostgreSQL y son Excelentes, simplemente haces una conexión para cada base de datos y realizas la consulta sobre la que lo requieras hacer, no debiera ser complicado. Incluso en un sistema anterior que tenía que conectarse a varios servidores de una empresa vía su propio servicio de interconexión con anchos de banda muy miserables lo que hicimos fue generar una tabla con las conexiones donde el usuario en un combo simplemente seleccionaba la sucursal y nosotros tomábamos los datos de conexión de la tabla, modificábamos el control, abríamos la conexión, ejecutábamos y al final solo la cerrábamos, todo con PostgreSQL, muy eficiente.

Espero haberte ayudado.

Saludos.
Responder Con Cita
  #5  
Antiguo 01-03-2011
ToritoCapo ToritoCapo is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 14
Poder: 0
ToritoCapo Va por buen camino
Gracias por su invalorable aporte, amigos !!!!

Realicé una segunda conexión para la otra base de datos y se terminaron todos mis problemas.
Lo que antes hacia con una sola conexión, cerrando y conectando a una base y a otra ( a pesar de esto funcionaba rápido igual ) con una conexión para cada base, le puedo asegurar que ahora "vuela".

Es increible, como teniendo la solución siempre delante de mis ojos, nunca reparé en este detalle, por eso vuelvo a repetir la importancia de el aporte de todos ustedes.

Muchisimas gracias!!!!

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Misma consulta sobre bd distintas. No actualiza info obtenida. setry2 OOP 0 06-02-2007 12:50:26
Como Asociar Tablas de bases de Datos distintas pcicom Firebird e Interbase 1 29-09-2004 18:39:32
distintas picklists en la misma columna de dbgrid arc22 Varios 4 28-06-2004 16:10:30
conexión entre distintas bases de datos jsanchez Firebird e Interbase 1 09-03-2004 22:35:22
Usar tablas de dos bases de datos distintas davidcm SQL 2 26-06-2003 17:05:05


La franja horaria es GMT +2. Ahora son las 23:18:07.


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