Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-09-2008
rmendoza83 rmendoza83 is offline
Miembro
 
Registrado: ago 2006
Posts: 50
Poder: 18
rmendoza83 Va por buen camino
Exclamation Componente ClientDataSet / Master-Detail ADO

Hola Amigos, un saludo para todos.

Quisiera escuchar su opinion sobre este componente, es decir, cuando utilizarlo, exactamente cual es su ventaja sobre otros componentes (ADO, Zeos), me servira para usarlos en un esquema master / detail.

Adicionalmente tengo un problema con una union master/detail utilizando Componentes ADOQuery, hago el enlace utilizando los parametros en el query (Ej: "... WHERE O.ID = :ID") y el datasource (recuerden que hay varias formas, por ejemplo el uso de masterfields y mastersource), hice pruebas con este metodo con componentes zeos y todo bien, pero con ado no he tenido buenos resultados; me hace el link bien, pero cuando voy a agregar un registro en el master e intenta hacer el link en el detalle me tira un error tal como este "ADODetail: Record not Found" donde ADODetail es el componente ADOQuery.

Ademas pues saber cual seria la mejor manera de hacer un master/detail, dado que no he probado cual es el mejor metodo. Pero si me fije que utilizando masterfields y mastersource es ideal cuando no tenemos una detalle con muchos registros. Trabajo con Delphi 7, algunos componentes de terceros, ADO y ZEOS, buenos ahi se los dejo, espero que puedan ayudarme...

Saludos.
Responder Con Cita
  #2  
Antiguo 30-09-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Preguntas demasiadas cosas y lias muchos conceptos en una sóla pregunta, y al final queda todo bastante liado.

En cuanto al ClientDataset, decirte que es un componentes independiente de ADO, Zeos,... (componentes de conexión). Es decir, a cualquiera de estos componentes de conexión le puedes añadir la funcionalidad de TClientDataset; No es un sustituto de estos.

TClientDataset lo que te ofrece es la posibilidad de tener en local los datos que te ofrece una consulta o tabla (independientemente de si está con ADO, Zeos, ODBC,...); Trabajar con ellos en local haciendo modificaciones, inserciones y borrados de registros (que no se reflejan en la Base de Datos) y cuando tú lo decides "volcar" todos esos cambios de golpe a tu Base de Datos.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 01-10-2008
rmendoza83 rmendoza83 is offline
Miembro
 
Registrado: ago 2006
Posts: 50
Poder: 18
rmendoza83 Va por buen camino
Smile

Hola Neftali, sabia que tu me responderias de primero. je je...

Admiro mucho tu estilo de programacion, pues tu sistema de plugins funciona excelente. Oye te comento un poco sobre lo que estoy haciendo, basicamente es un sistema administrativo contable a la medida, y quiero que este sea capaz de funcionar bajo cualquier manejador de base de datos y que pueda ser escogido por el personal de sistemas de mis clientes. Basicamente con Zeos puedo conectarme con exito a base de datos como Mysql, Postgresql, Firebird/Interbase y con ADO para base de datos comerciales y de microsoft, Access, Sql Server, Informix, Oracle, etc.

En resumen segun entiendo que el ClientDataSet deberia ser usado para trabajar con transacciones? pues mantiene los datos localmente y al decirle apply me hace el commit en el servidor real? creo que es algo asi lo que entendi. En realidad no es lo que quiero, quisiera que los datos se trabajen directamente en el servidor de produccion y no manejar data local. Hasta ahora pues con Zeos he logrado hacer todo pero con ADO tengo el problema que te mencione antes, pues cuando los utilizo en modulos como facturacion de clientes, ND, NC o compras que manejan maestro detalle me arroja el error justamente al insertar un nuevo registro, pero el link cuando se esta navegando se muestra bien. Bueno aun no logro detectarlo.

Por cierto, utilizo como generador de reportes el Nevrona Rave Reports 7 BEX, que es excelente, hasta logre hacer un datalink basado en Zeos para conectarme a Postgres y funciona excelente. Pero tengo una duda, tu no sabes si en la red estara el editor de reportes sin la limitante de usarlo solo desde el ide de delphi? me interesaria mucho poder usarlo sin esta limitante.

Bueno espero tus comentarios

Bye.
Responder Con Cita
  #4  
Antiguo 02-10-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por rmendoza83 Ver Mensaje
...segun entiendo que el ClientDataSet deberia ser usado para trabajar con transacciones? pues mantiene los datos localmente y al decirle apply me hace el commit en el servidor real?
Yo tiene porqué ir ligado lo uno con lo otro.

TClientDataSet te permite trabajar con datos en local y luego "volcar" todos los cambios de golpe al servidor.

Imagina el siguiente ejemplo; Estás introduciendo una factura y sus líneas de factura; El usuario debe ir añadiendo todas las líneas de la factura (productos) desde un formulario. No puedes mantener todo ese tiempo una transacción abierta y a medida que vas añadiendo líneas estan deben ir almacenandose. Puedes usar un TClientDataset, para ir almacenando las líneas; cambiar, borrar, añadir; Una vez finalizado aplicas todos los cambios en un sólo paso y grabas la factura en Disco. En este caso un TClientDataset puede ser una buena opción.

En cuanto a Rave, no estoy muy "puesto" en el tema.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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
Master - Detail SQL HectorMendez SQL 6 21-04-2008 15:28:19
DBLookupComboBoxs Master/Detail o Detail/Master yusnerqui OOP 5 29-07-2005 18:40:20
master/detail, imprimiendo master en cada hoja acalderonr Impresión 4 29-11-2003 14:46:07
interbase:¿como crear un master-detail-detail? ElSanto24 Firebird e Interbase 2 22-10-2003 10:24:45
Master/Detail/Detail/Detail/etc... hgiacobone Tablas planas 2 24-07-2003 17:20:31


La franja horaria es GMT +2. Ahora son las 09:09:52.


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