Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-01-2004
Avatar de StartKill
StartKill StartKill is offline
Miembro
 
Registrado: ene 2004
Posts: 299
Poder: 21
StartKill Va por buen camino
Cool Llaves foraneas en BDD distintas

Holas.

Estimados lectores, antes de hacer esta pregunta lo he pensado y repensado hasta el punto de creer que es una burrada mía al preguntar lo siguiente

Tengo una tabla en una BDD y tengo otra tabla en otra BDD y deseo hacerles una llave foranea entre ellas.....ups!!! sera posible??

El problema: La primera tabla es manejada por otro sistema y por razones la vida hay otro sistema(en construcción) que necesita esta tabla como referencial. , osea esta seguna tabla tiene un campo que hace referencia a la primera tabla de la primera BDD

Gracias

Your Friend

StartKill
Lima-Perú
Responder Con Cita
  #2  
Antiguo 30-01-2004
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 24
kinobi Va por buen camino
Hola,

Cita:
Empezado por StartKill
Tengo una tabla en una BDD y tengo otra tabla en otra BDD y deseo hacerles una llave foranea entre ellas.....ups!!! sera posible??
Respuesta rápida: no (lo siento).

Aunque el motor te permite transacciones contra varias bases de datos, no te permite "mezclar" objetos de esas bases de datos en una misma operación.

Saludos.
Responder Con Cita
  #3  
Antiguo 30-01-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Perdón que tal vez no tenga nada que ver con el hilo, pero ¿no es posible desde firebird generar una consulta que contemple un join con una tabla de una BD externa?

Realmente el post original me generó esa inquietud
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #4  
Antiguo 30-01-2004
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 24
kinobi Va por buen camino
Hola,

Cita:
Empezado por Gydba
Perdón que tal vez no tenga nada que ver con el hilo, pero ¿no es posible desde firebird generar una consulta que contemple un join con una tabla de una BD externa?
el motor del gestor como tal no lo admite. Es decir, no puedes pasar una SELECT al motor Firebird haciendo un JOIN de tablas de varias bases de datos. Otro asunto es que determinadas bibliotecas de acceso (creo que el BDE lo permite) recurran a determinados artificios para devolverte un Dataset con datos que provengan de varias bases de datos, pero este Dataset se construye en el cliente, lanzando varias consultas a las diferentes bases de datos.

Saludos.
Responder Con Cita
  #5  
Antiguo 30-01-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Quizas no venga en cuenta el comentario... pero aqui es donde regularmente comienzo a extrañar a Oracle... y mi cliente a llorar por su billetera!
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 30-01-2004
Avatar de StartKill
StartKill StartKill is offline
Miembro
 
Registrado: ene 2004
Posts: 299
Poder: 21
StartKill Va por buen camino
oK,

Bueno, ya saben no podemos decir NO al Cliente "Señor, disculpe no se puede" (hagamos un artificio-mentira-en realidad no se puede)

Como les comentaba dos tablas en BDD diferentes, la primera utiliza la segunda utiliza como referencial.

Cita:
Originalmente citado por KINOBI
Otro asunto es que determinadas bibliotecas de acceso (creo que el BDE lo permite) recurran a determinados artificios para devolverte un Dataset con datos que provengan de varias bases de datos, pero este Dataset se construye en el cliente, lanzando varias consultas a las diferentes bases de datos.
Estas lineas me dieron la idea- Gracias


Estoy utilizando dos compontentes IBQuery(s).

IBQuery1
Tabla a llenar varios campos mas un campo como referencia a la segunda tabla.

IBQuery2
Tabla referencial

En el "IBQuery1" le creo un campo calculado de tipo "lookup" haciendo referecia al IBQuery2, creo mi DBGRID1 con el IBQuery1 y listo , por lo menos de esa forma me aseguro que el codigo referencial exista.

Peroooo, nadie me da seguridad que borren algun registro del IBQUERY2 desde otro programa y peor aun que desde otro programa añadan un codigo en IBQUERY1 que no exista en el IBQUERY2(referencial). En otras palabras: El motor de base de datos no podra matener la integridad referencial de mis tablas <nada es perfecto>

Your Friend

StartKill
Lima-Perú
Responder Con Cita
  #7  
Antiguo 30-01-2004
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 24
kinobi Va por buen camino
Hola,

Cita:
Empezado por StartKill
Peroooo, nadie me da seguridad que borren algun registro del IBQUERY2 desde otro programa y peor aun que desde otro programa añadan un codigo en IBQUERY1 que no exista en el IBQUERY2(referencial). En otras palabras: El motor de base de datos no podra matener la integridad referencial de mis tablas <nada es perfecto>
Lo curioso del caso es que tal vez no debería ser (muy) complicado dar soporte a esto que comentamos. De hecho, una misma transacción puede aplicarse sobre varias bases de datos.

Saludos.
Responder Con Cita
  #8  
Antiguo 31-01-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Estoy de acuerdo con Kinobi, sería algo realmente interesante disponer de esta cualidad en la BD.

Tal vez en alguna versión futura ...
__________________
Suerte
.: Gydba :.
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 14:21:11.


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