Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Metadatos en Delphi (https://www.clubdelphi.com/foros/showthread.php?t=84111)

avechuche 11-09-2013 03:20:37

Metadatos en Delphi
 
Bueno gente, vengo con una duda resulta que tengo que hacer en práctico para la facu y tengo que hacer un programa que use metadatos el problema es que no tengo la más minima idea de como es y tmb explicaron, lo que se entiende es que cada persona pueda armar su propia estructura de los datos, nombre a las columnas, tipo de variables, la longitud, etc. Alguna idea?

ecfisa 11-09-2013 04:17:12

Hola avechuche.

Los metadatos son datos adicionales almacenados en un archivo que contienen información adicional sobre él.

Entonces mi pregunta es ¿ Metadatos de que, de un archivo de imágen, de una base de datos, de un archivo PDF, ... ?

Saludos. :)

Casimiro Notevi 11-09-2013 10:37:17

Cita:

Empezado por avechuche (Mensaje 466689)
Bueno gente, vengo con una duda resulta que tengo que hacer en práctico para la facu y tengo que hacer un programa que use metadatos el problema es que no tengo la más minima idea de como es y tmb explicaron, lo que se entiende es que cada persona pueda armar su propia estructura de los datos, nombre a las columnas, tipo de variables, la longitud, etc. Alguna idea?

Debiste prestar más atención en clase ;)

nlsgarcia 11-09-2013 20:34:15

avechuche,

Cita:

Empezado por avechuche
...tengo que hacer un programa que use metadatos..armar su propia estructura de los datos, nombre a las columnas, tipo de variables, la longitud, etc...

Revisa estos links:
Cita:

Metadato : http://es.wikipedia.org/wiki/Metadato

Los Metadatos (Universidad de Antioquia) : http://aprendeenlinea.udea.edu.co/lm..._metadatos.pdf

Metadatos (Concepto y Motivación) : http://www.sedic.es/autoformacion/metadatos/tema1.htm

Leyendo los metadatos de una tabla de Interbase/Firebird : http://delphiallimite.blogspot.com/2...-tabla-de.html

AJPD Soft Metadatos : http://www.ajpdsoft.com/modules.php?...rticle&sid=501
Espero sea útil :)

Nelson.

avechuche 12-09-2013 02:11:51

Vamos de a uno.

1) Lo que yo necesito es que en vez de un record que este dentro del código fuente del programa, que los usuarios puedan elegir el nombre del campo la cantidad de estos y el contenido. Digamos un ABM dinámico (En realidad es un ABM lo que tengo que hacer). Por ejemplo cuando uno crea una base de datos, cada uno elige el nombre de la columna y el tipo de contenido que va a almacenar y el la longitud, eso es lo que yo estoy buscando, que la estructura del programa la pueda elegir el usuario/cliente.

2) No me explicaron nunca metadatos, es más nunca dijeron esa palabra rara, el de Base de datos piensa que en programación II lo vimos y nada que ver pero el programa lo tenemos que hacer igual. Dije el de base de datos, pero no es un programa que use base de datos, es como un "repaso" de la que """" YA VIMOS """" (?)

3) Gracias voy a ver si me sirveee.

avechuche 19-09-2013 01:12:59

Bueno no hay caso no se como aplicar. Explico de nuevo lo que necesito por las dudas que no se alla entendido.

Cuando uno crea un record en Delphi lo hace asi (palabras más palabras menos)

Código:

    TipoRegistro = Record
        sApellido, sNombre: String[25];
        iCodigoDeCliente: 0..9999;
        iEstado: 0..1;
        iColision: Integer;
    End;

Con eso decimos que cada registro tiene esos datos, ni más ni menos.
Si por esas casualidades yo necesito que en ese record este, por ejemplo, la direccion y telefono de un cliente, tengo que modificar el código fuente y compilar el ".exe" de nuevo

Código:

    TipoRegistro = Record
        sApellido, sNombre, sDireccion: String[25];
        iCodigoDeCliente: 0..9999;
        iEstado: 0..1;
        iColision, iTelefono: Integer;
    End;

Por lo que para este ejercicio, no me sirve.
Lo que yo necesito es que cada usuario pueda elegir la cantidad de campos que tiene un record, el tipo de datos que va a contener y la longitud de estos.
No tengo ni idea de como empezar porque no se como implementarlo. Si alguno ya hizo algo de esto, me vendria re bien dos manos :)

donald shimoda 19-09-2013 02:35:36

Cita:

Empezado por avechuche (Mensaje 467111)
Bueno no hay caso no se como aplicar. Explico de nuevo lo que necesito por las dudas que no se alla entendido.

Cuando uno crea un record en Delphi lo hace asi (palabras más palabras menos)

Código:

    TipoRegistro = Record
        sApellido, sNombre: String[25];
        iCodigoDeCliente: 0..9999;
        iEstado: 0..1;
        iColision: Integer;
    End;

Con eso decimos que cada registro tiene esos datos, ni más ni menos.
Si por esas casualidades yo necesito que en ese record este, por ejemplo, la direccion y telefono de un cliente, tengo que modificar el código fuente y compilar el ".exe" de nuevo

Código:

    TipoRegistro = Record
        sApellido, sNombre, sDireccion: String[25];
        iCodigoDeCliente: 0..9999;
        iEstado: 0..1;
        iColision, iTelefono: Integer;
    End;

Por lo que para este ejercicio, no me sirve.
Lo que yo necesito es que cada usuario pueda elegir la cantidad de campos que tiene un record, el tipo de datos que va a contener y la longitud de estos.
No tengo ni idea de como empezar porque no se como implementarlo. Si alguno ya hizo algo de esto, me vendria re bien dos manos :)


Con un tipo record no podes hacerlo. Punto.

La próxima vez que en la facultad utilicen un término que no conoces, pregunta hast que te contesten, Si es pública puedes escupir al profesor mientras le exiges reiteradas veces o incluso si tienes buena contextura física (o mayor a la del susodicho) le pones un brazo por detrás de la espalda hasta que confiese de que carajos habla.

Si es privada, bajas a secretariua y pones queja del catedratico y que si no te explica que no pagas.

Suerte con eso! :D

nlsgarcia 19-09-2013 03:01:41

avechuche,

Cita:

Empezado por avechuche
...Lo que yo necesito es que cada usuario pueda elegir la cantidad de campos que tiene un record...

Pregunto : ¿Puedes usar otro tipo de estructura diferente a un Record?.

Revisa este link:
Cita:

To use TClientDataset as memory dataset : http://www.scalabium.com/faq/dct0150.htm
Con lo indicado en el link, podrías crear tablas dinámicas en memoria (Creadas según la selección del usuario) con mayor funcionalidad que un Record.

Otra opción es que crees un primer programa en Delphi, que genere un segundo programa con un tipo Record en función de la selección del usuario (Recopilada en el Primer Programa) y toda la funcionalidad que se requiera (Add, Update, Delete, Query), lo compile y lo ejecute.

Espero sea útil :)

Nelson.

avechuche 19-09-2013 04:33:22

1) Preguntamos, nos dijo que era un metadato y para que servia y bien gracias. Desp magia de parte de nosotros, ni ejemplo ni nada, estoy como medio mal, para colmo unico inscripto en la materia, ni copiarme puedo ja.

2) Si se puede usar cualquier estructura menos una base de datos, porque la materia es Base de Datos, pero la practica es de repaso de las programaciones anteriores. Veo que el link que me dejaste "trabaja" con base de datos :( (Me habia olvidado de decir eso)

nlsgarcia 19-09-2013 05:25:12

avechuche,

Cita:

Empezado por avechuche
...se puede usar cualquier estructura menos una base de datos...el link que me dejaste "trabaja" con base de datos...

Revisa esta información:
Cita:

Empezado por Delphi Object and Component Reference

TClientDataSet implements a database-independent dataset. TClientDataSet represents an in-memory dataset. A client dataset can be used as a fully-functional, stand-alone, file-based dataset for single-tiered database applications. When used in this manner, the client dataset represents the data stored in a dedicated file on the user’s hard disk.

Te comento:

1- Un TClienDataSet no es una base de datos, se usa con bases de datos y/o para el manejo de archivos individuales de tipo cds.

2- La segunda opción del Msg #8 requiere mayor desarrollo, pero es viable como solución al requerimiento planteado utilizando datos tipo Record.

Espero sea útil :)

Nelson.

nlsgarcia 19-09-2013 10:10:24

avechuche,

Cita:

Empezado por avechuche
...se puede usar cualquier estructura menos una base de datos...

Otra opción es simular un dato tipo Record con Arreglos Dinámicos o TStringList.

Te comento el algoritmo a nivel general:

1- Crear tres Arrays o TStringList para el Nombre, Tipo y Longitud de cada campo de la estructura de datos.

2- Definir el Nombre, Tipo y Longitud de cada campo de la estructura de datos en función del punto 1.

3- Crear un Array o TStringList para cargar los datos de la estructura definida en el punto 2.

4- Cargar los datos en la estructura del punto 3 en base a la definiciones del punto 2, con sus respectivas validaciones de tipo y longitud.

5- Crear procedimientos que permitan visualizar, modificar, consultar y salvar los datos cargados en el punto 4.

Lo sugerido anteriormente es más práctico de realizar por medio de TStringList.

Espero sea útil :)

Nelson.


La franja horaria es GMT +2. Ahora son las 10:18:49.

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