Foros Club Delphi

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

Luis_264 06-01-2009 06:32:39

dondee
 
olaa abro este hilo porque no me kontestan i me urgee miren ya tengo un ttable cargado (osea ya sirviendo con una tabla ) y en la seccion de editar registro ocupo saber si un x campo es autoincrement para saber si generar o no un tedit para el porque si lo dejo asi a la ora de guardar me va a marcar error mmm bueno el punto es en ke propiedad del ttable veo si un campo tiene la propiedad de autoincrement:confused: porfaa grax de antemano

Luis_264 06-01-2009 07:02:19

porfavor ayuda

AzidRain 06-01-2009 07:29:26

No hay forma de saberlo mas que accediendo al meta de la tabla directamente al motor de la BD y con base en eso construir los editores. Supongo que estas haciendo algo genérico en donde no sabes con antelación que tipo de campos vas a editar. Ahora bien, si estas haciendo un programa en donde ya sabes la estructura de las tablas resulta ocioso meter un campo para editar un autoincrementado.

Luis_264 06-01-2009 07:31:55

exactamente es generico :S mmm y komo es eso de acceder al meta de la tabla mmm no se nada de eso un ejmplo porfa

Al González 06-01-2009 07:36:18

Cada campo es a su vez un objeto componente dentro del TTable, así que, teniendo acceso al objeto campo en cuestión, sería algo así:

Código Delphi [-]
If ObjetoCampo.DataType = ftAutoInc Then

Si todavía no conoces cómo obtener un objeto campo, te recomiendo abrir un nuevo tema con el título "¿Cómo acceder a un objeto campo de un TTable?", tratando de ser lo más claro y ordenado posible en esa nueva intervención. Aunque pensándolo bien, te recomendaría que mejor buscaras primero en el historial, porque seguro que eso ya ha sido tratado en muchas otras ocasiones.

Saludos.

Al González.

Al González 06-01-2009 07:42:02

Cita:

Empezado por AzidRain (Mensaje 333440)
No hay forma de saberlo mas que accediendo al meta de la tabla directamente al motor de la BD y con base en eso construir los editores.

Esto que comenta el compañero César es bastante válido y será lo que tengas que hacer cuando tu base de datos sea cliente-servidor, pero si tu base de datos es de las llamadas de escritorio, como Paradox, por ejemplo, podría bastar la solución que te comenté arriba.

Al González 06-01-2009 07:54:07

Cita:

Empezado por Luis_264 (Mensaje 333441)
exactamente es generico :S mmm y komo es eso de acceder al meta de la tabla mmm no se nada de eso un ejmplo porfa

Los "metadatos" es información generalmente contenida en la propia base de datos que "describe" a las tablas, campos y demás elementos que una base de datos contiene. Una tabla de metadatos puede ser por ejemplo una tabla que contenga los nombres de todas las tablas que ya están en la base de datos, un catálogo de tablas, vaya. De la misma manera puede haber un catálogo de campos (con sus nombres, tipo de dato, tamaño, etc.).

Todos esos catálogos internos contienen información sobre cómo es la propia base de datos (cómo están estructuradas las tablas, a detalle). Dependiendo de qué motor de base de datos utilices, los metadatos pueden estar guardados de una manera o de otra. El acceso a los mismos puede variar de motor en motor, e incluso no estar disponible.

Generalmente es el motor que usas el que se encarga de crear y mantener actualizados esos catálogos especiales, pero también tú mismo puedes crear "tablas de metadatos" para guardar tu propio "diccionario estructural" y usarlo en procesos genéricos, como el que te ocupa ahora.

Saludos.

Al. :)

Luis_264 06-01-2009 07:59:49

mmm estoy trabajando con bases mdb mediante obdc y por alguna razon el kampo ke es autoincrement me lo marca como ftinteger :S

Luis_264 06-01-2009 15:46:10

y tambien ocuparia saber como filtrar campos en lugar de registros =D

Luis_264 06-01-2009 19:51:23

ya resolvi

AzidRain 06-01-2009 22:26:54

Oye Luis, asi como tu ha de haber muchos que tengan la misma duda, nada te costaría poner como lo resolviste. De eso se trata un foro, inclusive a veces una solución que resulta util entre muchos otros la perfeccionan.

Luis_264 06-01-2009 23:19:58

  1. Cita:

    Si encuentras la solución tú mismo, no te molestes en explicarla. Bastará con un "Ya lo resolví, gracias". Nos emociona ver gente autosuficiente.
esque no puse la respuesta por lo que decia en esa guia de estilo =D

mmm ps como el obdc no detecta campos autoincrement en access entoces solo puse que si el campo se llamaba id que no lo mostrara i ya =S

AzidRain 07-01-2009 01:13:33

jajaja Luis, no me habia dado cuenta de ese dato de la guia...por otro lado tu solución es bastante ingeniosa y hasta chapucera dirian algunos, pero mi amigo, un consejo: por muy chapuza que sea tu solución si te resuelve el problema y entregas el trabajo adelante, ya habrá tiempo para versiones adicionales...jejeje.. a los clientes les vale si usas soluciones elagantes o chapuzas, lo que quieren y pagan es lo que funciona y punto.


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

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