Club Delphi  
    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 Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-05-2016
ronalg ronalg is offline
Miembro
 
Registrado: may 2003
Ubicación: Sucre - Bolivia
Posts: 68
Poder: 21
ronalg Va por buen camino
Los TDataSource en maestro detalle

Buenas y santas amigos de club delphi, regresando a la programación desde hace unos meses despues de varios años alejado y dedicado a a la administración y a la educación, estoy algo empolvado en el tema pero algunas cosas no se olvidan (a Dios gracias).

Estoy haciendo el clasico sistema de compras, ventas y almacenes y me surgen algunas dudas sobre la eficiencia de mi lógica, por favor les pido darme unas orientaciones y espero no ser muy "cargaso" con mis consultas.

ahora tengo una consulta: Tengo cuatro tablas:

TB_COMPRAS_VENTAS (GUARDA LAS VENTAS Y LAS COMPRAS)

TB_DETALLES_CV (GUARDA EL DETALLE DE LOS ITEMS EN RELACION CON TB_COMPRAS_VENTAS);

TB_SERIES_ITEMS (GUARDA LAS SERIES DE LOS ITEMS, SI LOS TIENEN, EN RELACION CON CADA LINEA INSERTADA EN TB_DETALLES_CV DEFINIDO POR LA CANTIDAD DE ITEMS VENDIDOS EN LA LINEA DE DETALLE, POR EJEMPLO VENDO 4 PROCESADORES Y CADA UNO TIENE SU NUMERO DE SERIE)

TB_CUOTAS (EN RELACION CON TB_COMPRAS_VENTAS ALMACENA LAS CUOTAS DE PAGO DE LA VENTA CUANDO ES A CREDITO)

Obviamente estan conectados maestro detalle con Tdatasource y para evitar problemas de integridad referencial en mi servidor (perdón uso Firebird 2.5) uso las actualizaciones en cache una vez que envio toda la venta aplicando las actualizaciones en cache los triggers se encargan de hacerel resto (actualizar inventarios, etc) [esta utlima parte de los trigger es mi segunda duda].

1ra Duda: Uso los mismos datasource para hacer la relacion maestro detalle y para conectar los componentes de datos en el formulario de ventas me gustaria saber si esto es correcto o por lo menos factible o me traera algún problema en un futuro; sería mejor usar un datasource para la relacion maestro detalle entre mis TIBDatasets y usar otro datasource para conectar los componentes de datos.

2da Duda: Es recomendable usar actualziaciones en cache juntamente con triggers o son incompatibles, hasta donde entiendo debrian ser compaibles.

3ra Duda: Uso campos LOOKUP en varias de mis tablas. Por ejemplo la TB_DETALLES_CV tiene un campo REF_ITEM que lo relaciona con la TB_ITEMS donde se lista los items, su nombre y su existencia en almacenes pero en TB_DETALLES_CV solo se inserta el CODIGO del ITEM en el campo REF_ITEM uso un campo LOOKUP para mostrar el nombre del item. Pero también podria usar en la propiedad SELECTSQL del IBDataSet relacionado con la tabla TB_DETALLES_CV una consulta usando JOIN para evitar usar campos LOOKUP (Tambien deberia modificar la propiedad REFRESHSQL) ¿QUE ES MEJOR? USARS CAMPOS LOOKUP O USAR CONSULTA CON JOINs

DE ANTEMANO, MIL GRACIAS POR SU AYUDA.
__________________
Saludos desde Sucre - Bolivia
"Si te lo puedes imaginar lo
puedes resolver" Pyriel

Última edición por ronalg fecha: 17-05-2016 a las 00:59:14.
Responder Con Cita
  #2  
Antiguo 17-05-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por ronalg Ver Mensaje
1ra Duda: Yo usaría diferentes, además son gratis
2da Duda: No entiendo lo de las actualizaciones en cache.
3ra Duda: Yo usaría una consulta. Además, si son pocos registros, los mantendría en memoria para ahorrar hacer select cada a cada rato.
......................
Responder Con Cita
  #3  
Antiguo 20-05-2016
ronalg ronalg is offline
Miembro
 
Registrado: may 2003
Ubicación: Sucre - Bolivia
Posts: 68
Poder: 21
ronalg Va por buen camino
Gracias mil

Sobre al duda Nro 2 lei en varios lugares que los cacheupdates en los ibdataset (delphi 6 - 7 y al parecer delphi XE5 hasta XE8 aun tienen esos componentes); producen errores "inexplicables" cuando se combinan con trigger.
En lo personala mi no me ha pasado, pero ante la duda pregunto...... será que a alguien le ha pasado? y que cuidados tener para que no pase estos errores.
__________________
Saludos desde Sucre - Bolivia
"Si te lo puedes imaginar lo
puedes resolver" Pyriel
Responder Con Cita
  #4  
Antiguo 20-05-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por ronalg Ver Mensaje
Sobre al duda Nro 2 lei en varios lugares que los cacheupdates en los ibdataset (delphi 6 - 7 y al parecer delphi XE5 hasta XE8 aun tienen esos componentes); producen errores "inexplicables" cuando se combinan con trigger.
En lo personala mi no me ha pasado, pero ante la duda pregunto...... será que a alguien le ha pasado? y que cuidados tener para que no pase estos errores.
Yo no he conocido ningún caso de problemas con eso.
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
Saber si el DBGrid (Detalle) esta Vacio en Relacion Maestro/Detalle Adrian Murua Conexión con bases de datos 2 03-01-2009 13:48:46
Maestro/Detalle (No graba en tabla Maestro) teclilla Tablas planas 12 21-04-2008 20:59:54
Problema tabla Maestro-detalle en la q la pk de t.detalle formad por 2cods de la maes akinom38 Varios 1 09-11-2007 19:27:44
Numerar el detalle Maestro / detalle en secuencia josejose SQL 5 10-02-2007 00:27:38
Maestro-Detalle ;Actualizar detalle a partir de un DBgrid norberto_larios Conexión con bases de datos 1 11-09-2004 18:17:34


La franja horaria es GMT +2. Ahora son las 12:16:35.


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