Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Actualizaciones en cascada!!!

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Actualizaciones en cascada!!! Responder citando

Hola:

Alguien podria decirme cual es la mejor forma de accesar a bases de datos usando BCB6 usando componentes BDE?ADO?DBEXpress?? en fin cual es la forma mas eficiente....

tambien quisiera saber si alguien puede expliicarme como hago actualizaciones en cascada, es decir actualizar llavs foraneas en una relacion padre hijo en oracle...

De antemano muchas gracias...

Saludos
Volver arriba
Mensaje    Asunto: Responder citando

contra que base de datos quieres conectarte?

Sobre las actualizaciones en cascada, en Oracle no he trabajado, pero en Paradox y Access se que al definir las relaciones (dentro de la bd) puedes indicar que se realicen actualizaciones y elimanaciones en cascada por ejemplo.

Otra forma , más manual, es usar el onpost o el afterdelete y / o beforedelete de la tabla a modificar.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: hh Responder citando

Hola gracias por respónder:

Necesito comectarme a una BD Interbase 6.0, a proposito la version 6.0 que tengo sera gratuita???, como hago para saberlo?

Gracias Ikis y gracias a todos.

bye.
Volver arriba
Mensaje    Asunto: Responder citando

Nunca he trabajado con Interbase 6, pero se que es Open Source. Yo te sugeriría que te pases a Firebird 1.5 que es más avanzada que Interbase.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

HOLA:

Upss, Mucho tiempo sin parsarme por aqui, hay cantidad de nuevas preguntas, pero esta me parece interensate.

Interbase 6, es open source y totalmente gratuita, el por que es sencillo hace tiempo borland (inprise ) y corel se intentaron fusionar, en este preacuerdo de fusion, corel impuso a borland que liberara su base de datos para que sus clientes no tuvieran que pagar el royalty de la base de datos ( interbase costaba unos 1200 €), como el acuerdo no llego a buen fin pues borland retomo la base de datos en su modalidad de pago.

Al dejarla libre (ademas de unos problemas internos con los programadores) los propios creadores de base de datos decidiron continuar el trabajo por su cuenta con lo crearon firebird que en la actualidad va por la version 1.5 y es open source.

Al grano los componentes nativos para borland IBExpres (coño ahora no me acuerdo como se llaman, creo que son esos, con lo bonito que me estaba quedando el post, en fin) sirven para interbase 6 y para firebird 1.5, en principio las mayores diferencias se encuentra en la velocidad, firebird a parte de tener un SQL mas amplio, es mas veloz pero si cambias una base de datos por otra no tendras que reprogramar una linea.

En cuanto a lo de actualizar en cascada, para ello utilizamos los triggers o disparadores, que se ejecutan internamente en la base de datos, por ello el cliente/usuario no se da ni cuenta, y aumenta espectacularmente los rendimientos de los programas.

Ejemplillo. (de memoria)

create trigger BorraHija for clientes before delete
as begin

delete from detalleclientes where idcliente = :OLD.CODIGO;
end


By.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Gracias Responder citando

Gracias Toño por a respuesta:

Me puedne decir en donde puedo descargar el Firebird 1.5 versione stable...

Mil gracias...

Saludos.

Bye.
Volver arriba
Mensaje    Asunto: Responder citando

Perdona Desesperado si no he contestado antes, pero la verdad es que he ido dejando de contestar un poco en el foro por falta de tiempo.

Si usas Interbase 6 o Firebird 1.x no te hacen falta los triggers para usar las actualizaciones en cascada pues la integridad referencial está totalmente soportada bajo estos SGBD, lo unico que necesitas es incluirla en el diseño de tus tablas. Imaginate que tienes dos tablas, donde la clave de una de ellas se utiliza en la otra (clave foranea), para usar las actualizaciones en cascada solo te hace falta decirselo al SGBD...

Ejempo sencillo:

Código:

CREATE TABLE clientes (
    codigo_cliente INTEGER NOT NULL,
    nombre VARCHAR(30)
);

ALTER TABLE clientes ADD CONSTRAINT clientes_pk PRIMARY KEY (codigo_cliente);

CREATE TABLE facturas (
    codigo_factura INTEGER NOT NULL,
    codigo_cliente INTEGER NOT NULL,
    importe INTEGER
);

ALTER TABLE facturas ADD CONSTRAINT facturas_pk PRIMARY KEY
(codigo_factura);
ALTER TABLE facturas ADD CONSTRAINT facturas_de_cliente_fk FOREIGN KEY (codigo_cliente)
   REFERENCES clientes (codigo_cliente) ON UPDATE CASCADE;


Como ves creamos dos tablas, la primera con la clave primaria sobre el campo codigo_cliente, en la segunda tabla, es una tabla de facturas donde hay simplemente un importe de factura, es muy tonta, solo para ilustrar la idea. La clave primaria de esa tabla es codigo_factura no incluimos al cliente en este caso no tiene porque para el ejemplo, despues de crear la restricción de la clave primaria, creamos la restricción de integridad referencial para la clave secundaria, fijate en lo que digo altero la tabla para crear la restricción "facturas_de_cliente_fk" y le digo que el campo codigo_cliente de la tabla FACTURAS realmente referencia al campo codigo_cliente de la tabla CLIENTES, y entonces le digo que ON UPDATE CASCADE, es decir siempre que se actualize el codigo del cliente en la tabla clientes automaticamente se actualizará en la tabla FACTURAS, comprendes la idea ?

Decir también que como no hemos dicho nada acerca del comportamiento en los borrados (en cascada por ejemplo), pues Interbase/Firebird toma por convenio ON DELETE RESTRICT, es decir, no te dejará borrar ningun cliente que tenga facturas.

Espero que te haya quedado claro, sino te queda claro pregunta...
Por cierto en Oracle 8 y 9 se que funcionan perfectamente las restricciones de integridad referencial de UPDATE CASCADE, en Oracle 7 creo que también pero no estoy seguro, y en la versión 6, creo que las soportaba el lenguaje pero no estaban implementadas y entonces tocaba implementar los triggers (creo recordar...).

Venga cuidate. Ciao.
_________________
OJO!! Ya tenemos subforo de Bases de Datos!!
Gracias a los admins.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Hola Responder citando

Hola:

Primero muchas gracias por la ayuda, de verda mil gracias...!!!!quisisera saber cual es el site oficial de Firebird 1.5 o latest version...para podermel a descargar, tambien quisiera preguntarles si saben de algunos componentes que permitan mostrar la informacion de bases de datos, hablo de los data controls(DBGrid,DBEdit) pero que sean tipo faltstyle o permitan presentar de una forma no tradicional o mas bonita pero con la misma funcionalidad....

Por otro lado una aplicacion echa en el Builder 6.0 que accesa a una base de datos Firebird o Interbase 6.0 a traves del BDE puede facilmente migrarse a C++ Builder X, o esto es una odisea???

Gracia spor responder...

aludos..

Bye.
Volver arriba
Mensaje    Asunto: jeje Responder citando

Guenas..

Pasaba por aqui y me di cuenta de este post es justo lo que iba a preguntar...existen algunos componentes Data Controls que permitan visualizar informacion procedente de una base de datos diferentes de los tradicionales, ya saben que se vean mas bonitos...que le gusten mas al usuario jeje

En serio si alguien sabe mil gracias..

Bye.
Volver arriba
Mensaje    Asunto: Responder citando

Desesperado, venias bien hasta que nombraste BuilderX.

Te comento

http://firebird.sourceforge.net/ sitio oficial de Firebird

Como componentes, te recomiendo los IBObjects

www.ibobjects.com Debes pedir por mail por la version Trustware

Tambien te recomiendo el gestor www.ibexpert.com

Otros dos links interesantes

www.interbase.com.mx

www.ibphoneix.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Hola Responder citando

Hola Ikis:


Quiero darte gracias por tu ayuda pero no entiendo porque me dices lo del Builder X, explicame por favor...acaso es tan malo el X???

Tu sabes como cambiar la apariencia de los Quick reportes?

Gracias..

Bye.
Volver arriba
Mensaje    Asunto: Responder citando

Para cambiar el idioma del Quick Report

https://cppbuilder.es/viewtopic.php?t=5629&highlight=quickreport+idioma

https://cppbuilder.es/viewtopic.php?t=3544&highlight=quickreport+idioma

en general la función de búsqueda del foro funciona muy bien! Very Happy

El problema de Builder X es su soporte a la VCL. Hasta donde se los IBOjects no se pueden compilar en esa versión, pero pregunta en su foro de soporte para estar seguro.

atte
_________________
Adrián

http://adrian.org.ar
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

HOLA:

si claro las p. CONSTRAINT, precisamente estan pensada para la integridad refencial.

Mea culpa, yo aun me resisto a usarlas.

By.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.