Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-07-2005
Johnny Q Johnny Q is offline
Miembro
 
Registrado: may 2005
Ubicación: Colombia
Posts: 172
Poder: 19
Johnny Q Va por buen camino
Question Es sano repetir?

Un cordial saludo a todos

En mi modulo de datos tengo algunas tablas que utilizo para consultas e inserciones o ediciones desde varias formas que lo requieren.

A veces necesito realizar operaciones (edicion, inserción o eliminación) con estas tablas desde una forma especifica, y programarle algunos eventos. Alguien me aconsejo por cuestiones de organización copiar y pegar la tabla del modulo de datos en mi forma y alli programarle los eventos requeridos.

Ayer LEPE me recomendo una soloción bastante interesante en este hilo http://www.clubdelphi.com/foros/showthread.php?t=23246

Entonces mi pregunta es: que tan sano es repetir?
Responder Con Cita
  #2  
Antiguo 12-07-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No sé a qué te refieres con repetir. Para mi, me ha funcionado tener un dataset único por tabla en todo el proyecto que me sirva para mandar datos a la base. Normalmente las reglas para ello no dependen del formulario desde donde se lancen y por ello eventos como OnNewRecord, OnBeforePost y OnPostError contienen siempre lo mismo independientemente de la interfaz de usuario. Teniendo un sólo dataset para ello te aseguras de estar usando la misma lógica en todas partes.

Otra cosa es la recuperación de datos, en donde, según lo que estés usando o mostrando al usuario, puede depender cuáles campos traes, qué relaciones haces con otras tablas, etc. En estos casos, a no ser que realmente puedan reutilizarse, normalmente los coloco en el mismo formulario o en un datamodule específico para un formulario. Eventos de navegación como OnBeforeScroll u OnAfterScroll son más susceptibles de depender de un elemento de interfaz en particular y por ello no los mezclo en un datamodule general.

// Saludos
Responder Con Cita
  #3  
Antiguo 12-07-2005
Johnny Q Johnny Q is offline
Miembro
 
Registrado: may 2005
Ubicación: Colombia
Posts: 172
Poder: 19
Johnny Q Va por buen camino
Gracias por tu respuesta Roman.

Cuando menciono repetir, hago referencia por ejemplo a tener una Tabla Clientes en el modulo de datos para hacer consultas (o recuperar informacion)
y tener otra tabla exactamente igual en la forma Clientes en la que hago operaciones de modificacion de datos (insertar, editar, eliminar) pero con algunos eventos que se generan con base en datos manipulados esta forma.
Responder Con Cita
  #4  
Antiguo 12-07-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Po lo general evito usar un grid para editar información, Esto me permite separar por un lado los datasets para actualizacoón de datos de los datasets para recuperación de datos.

Dicho en concreto, tengo un dataset tblCliente (suponiendo que uso un TTable) en un datamodule general en donde, además, tendré un tblFactura, tblPedido, tblProducto, etc.

En este datamodule programo básicamente los eventos OnNewRecord (si necesito valores por defecto), OnBeforePost, para hacer validaciones y OnPostError para manejar errores generados en el servidor.

En el formulario Clientes (donde mostraría una lista de clientes) coloco un dataset para alimentar al grid que muestre los clientes. Pero este dataset es de sólo lectura. Cuando requiera editar los datos de un cliente o agregar uno nuevo abro una ventana para ello con sus correspondientes dbedits enlazados al tblCliente del datamodule general.Si es un registro nuevo uso tblCliente.Append. Si estoy editando un registro existente uso tblCliente.Locate para colocarme en el registro correspondiente.Al Locate le paso como argumento la llave primaria del registro, misma que obtengo del dataset que usé para alimentar al grid.

// Saludos
Responder Con Cita
  #5  
Antiguo 12-07-2005
Johnny Q Johnny Q is offline
Miembro
 
Registrado: may 2005
Ubicación: Colombia
Posts: 172
Poder: 19
Johnny Q Va por buen camino
El procedimiento que describes es muy parecido al que yo estoy siguiendo, pero queria saber la opinión de una persona versada en el tema como tú.

Gracias Roman.
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 20:18:00.


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