 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Desesperado Invitado
|
Publicado: Sab 24 Abr, 2004 5:33 am Asunto: Actualizaciones en cascada!!! |
|
|
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 |
|
 |
ikis Master


Registrado: 28 Dic 2002Mensajes: 703Ubicación: Madrid, España
|
Publicado: Sab 24 Abr, 2004 4:43 pm Asunto: |
|
|
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 |
|
 |
Desesperado Invitado
|
Publicado: Lun 26 Abr, 2004 6:19 pm Asunto: hh |
|
|
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 |
|
 |
ikis Master


Registrado: 28 Dic 2002Mensajes: 703Ubicación: Madrid, España
|
Publicado: Lun 26 Abr, 2004 7:50 pm Asunto: |
|
|
| 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 |
|
 |
TOÑO Master

Registrado: 26 Ago 2002Mensajes: 223Ubicación: Madrid - España -
|
Publicado: Jue 29 Abr, 2004 11:02 am Asunto: |
|
|
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 |
|
 |
Desesperado Invitado
|
Publicado: Jue 29 Abr, 2004 5:36 pm Asunto: Gracias |
|
|
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 |
|
 |
XyVy Master


Registrado: 25 Ago 2002Mensajes: 557Ubicación: Murcia (España)
|
Publicado: Jue 29 Abr, 2004 5:59 pm Asunto: |
|
|
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 |
|
 |
Desesperado Invitado
|
Publicado: Vie 30 Abr, 2004 6:47 pm Asunto: Hola |
|
|
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 |
|
 |
Metido Invitado
|
Publicado: Vie 30 Abr, 2004 6:56 pm Asunto: jeje |
|
|
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 |
|
 |
ikis Master


Registrado: 28 Dic 2002Mensajes: 703Ubicación: Madrid, España
|
|
| Volver arriba |
|
 |
Desesperado Invitado
|
Publicado: Sab 01 May, 2004 5:58 am Asunto: Hola |
|
|
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 |
|
 |
ikis Master


Registrado: 28 Dic 2002Mensajes: 703Ubicación: Madrid, España
|
|
| Volver arriba |
|
 |
TOÑO Master

Registrado: 26 Ago 2002Mensajes: 223Ubicación: Madrid - España -
|
Publicado: Lun 03 May, 2004 6:20 pm Asunto: |
|
|
HOLA:
si claro las p. CONSTRAINT, precisamente estan pensada para la integridad refencial.
Mea culpa, yo aun me resisto a usarlas.
By. |
|
| Volver arriba |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|