![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Cita:
Me gustaría comentar algunas cuestiones y decisiones que has tomado, problemas que te has podido encontrar, mapeo de tablas en Base de Datos que has escogido, cómo implementas los OID's (Identificadores de objetos), navegación entre objetos, cómo realizáis las busquedas, controles estandar de Base de Datos o propios, multiidioma,... (se me ocurren uchas más ![]() Cita:
Cita:
![]() ![]() ![]() Es broma, es que esta gente también trabajaba anteriormente con Clipper. Un saludo.
__________________
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. |
#2
|
|||
|
|||
Bien.
OIDs: utilizo un unico OID por Base de datos, por registro. Tengo un generador de IDS (una clase dentro del propio framework) que se reserva 15 ids, y una vez reservados nadie puede utilizarlos. Cuando necesita mas, vuelve a buscar otros 15. Controles: Utilizo unas grillas comerciales, si bien podrian utilizarse otras. Si bien trabajo con objetos, Una vez mapeada la tabla en el objeto, el mismo es mapeado en un ClientDataset, para poder manipular sus datos con controles DBAware. Y luego, vuelve del ClientDataset al objeto, y del objeto a la base de datos. El ClientDataset lo utilizo con Fields creados por mi. No estan conectados a base de datos. Las busquedas las realizo empezando el search por uno de los TPDList ( o lista de Objetos). Luego voy pidiendo mas datos. Tengo ya una estructura armada y soporta multiidioma, aunque uno debe tomarse el trabajo de armar el diccionario y luego volcar sobre la parte visual cada palabra o mensaje. Ademas, mi framework, crea Forms con un factory pattern. No del modo tradicional. Y el Main Menu, es dinamico, se crea en base a la estructura que se declare en ciertas tablas de la base de datos. Ademas con perfiles de usuario. Los forms, ya instrumentan metodos heredados para manipular el mapeo de objetos hacia el Tclientdataset y viceversa. Tambien utilizo frames, (con mismos metodos para manipular objetos/clientdataset) que sirven para armar master/details. Un problema que tuve, fue que al declarar properties/fields de las clases, como string, integer, TdateTime, etc, fue que no podia asignar el valor null cuando queria. Asi que tuve que crear mis propios tipos de datos, que son todos variants, pero cada uno con el nombre TString, TEntero, TFecha, TFechaHora, etc. Otro problema, y sin solucion por el momento, es que no puedo utilizar Blobs. Pero no es algo dramatico. Cuando necesito manejo de imagenes guardo la ruta de las imagenes. Como funcionalidad adicional, grabo un log de cada sentencia SQL ejecutada, con el dato de que usuario lo grabó. Lo que me permite replicar la base de datos si lo deseo, o revisar que sucedio, o volver hacia atras alguna operacion quiza. Bueno, espero que haya aclarado alguna de tus dudas. Un abrazo |
#3
|
||||
|
||||
Cita:
¿Qué tipo de mapeo de tablas utilizáis? Los 4 que más se utilizan son:
Cita:
Cita:
Cita:
__________________
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. |
#4
|
|||
|
|||
Con Respecto a los mapeos, en mi caso, suelo utilizar la estructura 1 a veces, otras veces la 2. De acuerdo a lo que vea mas conveniente.
La 3 no la conocia ni la probé. En que has visto que mejora implementar la estructura 3 ?. Me interesa tu opinion. La 4 me parece horrible. Los IDs son integer. Ya que los Longint me traian algunos problemas con los ClientDataset que uso en cada form para mapear de objeto a ClientDataset. No recuerdo cual era el problema en este momento. Última edición por lsg fecha: 12-07-2006 a las 13:14:10. |
#5
|
||||
|
||||
Cita:
Las ventajas frente a las otras es que es mucho más fácil de modificar, las tablas son más pequeñas (ya que cada tabla sólo tiene los campos de esa clase) y eso hace más rápidas algunas operaciones. Pero sobre todo por el tema de modificaciones. El inconveniente mayor es la generación de consultas, que se hace más compleja. En ese mismo documento tienes una comparativa simple de las diferentes opciones.
__________________
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. |
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿Acaso todos los miembros de este foro somos ateos? | <Sergio> | Humor | 8 | 26-03-2008 08:31:18 |
Pedido de Ayuda (Arboles bianrios, pilas y colas) | theundertakker | Varios | 1 | 07-12-2005 20:03:34 |
Swichdesktop del foro! | marceloalegre | Varios | 2 | 19-05-2005 09:37:17 |
![]() |
|