![]() |
![]() |
| Paypal | 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 |
|
#3
|
||||
|
||||
|
Cita:
Es una iniciativa interesante, en mi opinión es un inicio hacia un ORM, lo cual no es algo tan sencillo de implementar,y menos si no se trabaja con una concepción mas orientada a objetos, es decir el get es solo una parte de todo el proceso. Me llama la atención lo que haces con el prefijo i para identificar las propiedades del objeto, o el mismo hecho de que la. En lugar de eso, te invito a que revises la documentación asociada a TCustomAttribute es la forma como puedes etiquetar tus clases, métodos, propiedades y darles un tratamiento. Por ejemplo
Con esto, puedes indicarle a tu sistema que la clase definida tiene un atributo de tipo TMyORMField (creado por ti) que indica algo, en este caso tu decides que te va a representar el nombre de la tabla en la base de datos. con esto, tu clase y tu tabla pueden llamarse diferente. De igual forma puedes agregar atributos a tus "Fields" y "properties", asi:
Mira que aqui utilizo el mismo atributo TMyORMField (podrian ser diferentes), con la diferencia que uno opera sobre la clase, indicando el nombre de la tabla y el otro indica el nombre del campo y otros datos. Fijate tambien que los atributos pueden ir sobre properties o sobre fields. En el caso del ID_Cliente, recibe dos parametros mas de tipo boleano (o cualquier tipo), tu decides que interpretación le puedes dar, por ejemplo, el primero podria indicar si es un campo requerido dentro de tu tabla y el segundo si es parte de la llave primaria. Otra opcion es utilizar multi-atributos para indicar esto
Para llegar a estom a grosso modo debes definir una calse para el atributo:
Posteriomente en tu "getObjeto(pObjeto: TObject)" debes revisar estas properties:
la asignacion de valores , que es lo que creo que quieres la harias con
SetField y setProp:
Lo anterior es un extracto de algunas pruebas que hice pensando tal vez en lo mismo que tu quieres, pero solo a manera de ejercicio... funcionó lo que hice, pero nunca lo implementé. Como te dije lo anterior es un "a grosso modo" Con la clase TMyORMEngine, iban muchos, muchos metodos y propiedades, como la persistencia en la DB a partir de los datos obtenidos... o la asignacion de sentencias SQL custom (insert, update, delete), Como te digo, GetObject es solo una tarea de todo lo que deberias organizar sobre este tema. Última edición por gatosoft fecha: 03-05-2020 a las 10:40:20. Razón: etiquetas delphi |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Usando RTTI para devolver lista de eventos | elrayo76 | Varios | 13 | 03-06-2016 08:34:57 |
| Recuperación información a través de RTTI | jocaro | Varios | 15 | 10-05-2016 08:18:00 |
| Error en funcion usando stdcall | Ramsay | Varios | 2 | 11-03-2016 02:45:55 |
| Herencia externa de componentes (BPL)(RTTI) | jednavlop | OOP | 4 | 05-11-2010 18:37:14 |
| Acceder al objeto asociado a una prop. (RTTI) | Neftali [Germán.Estévez] | Trucos | 0 | 30-05-2007 13:39:22 |
|