Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Cómo puedo agregar campos a un objeto TADOTable en tiempo de ejecución? (https://www.clubdelphi.com/foros/showthread.php?t=62924)

OscarBravo 21-01-2009 14:37:51

Cómo puedo agregar campos a un objeto TADOTable en tiempo de ejecución?
 
Saludos a todos los amigos del Foro.

Trabajo Con Delphi 7 y Acces 2007

La conexion a la base de datos es mediante un AdoConnection y la tabla está asociada a un TADOtable, ambos componentes son de ADO
En un formulario tengo un DbGrid en el que muestro los registros de una tabla, en el puedo Insertar, modificar, borrar registros, inclusive tengo una opción con la que puedo modificar la estructura de la tabla Con Alter table e insertar una nueva columna.

En tiempo de diseño para agregar las columnas haciendo clic derecho sobre el objeto TADOtable, en el menmú que se despliega se elige la opción "Fields Editor" y en la ventana que se despliega se pulsa nuevamente clic derecho y finalmente se elige la opción Add Fields, una vez hecho esto, todas las columnas de la tabla estan disponibles y se pueden adicionar al dbgrid, creo que todos hemos hecho esto antes.

El interrogante es:
¿Cómo hacer para Agregar la nueva columna al objeto TADOtable (Lo que se hace en tiempo de diseño) y posteriormente mostrar en el DbGrid esa nueva columna pero mediante código, es decir en tiempo de ejecución del programa.?
Espero haberme hecho entender.
De antemano gracias por la colaboración

marcoszorrilla 21-01-2009 14:53:24

Puedes utilizar una sentencia SQL.

Tipo:ALTER table Clientes add Direccion char(40)


Si la rejilla está conectada para que visualice todos los campos no tienes que hacer nada pues comenzará a verse una columna más a partir de que ésta sea creada.

Un Saludo.

Caro 21-01-2009 15:09:49

Cita:

Empezado por OscarBravo (Mensaje 335329)
En tiempo de diseño para agregar las columnas haciendo clic derecho sobre el objeto TADOtable, en el menmú que se despliega se elige la opción "Fields Editor" y en la ventana que se despliega se pulsa nuevamente clic derecho y finalmente se elige la opción Add Fields, una vez hecho esto, todas las columnas de la tabla estan disponibles y se pueden adicionar al dbgrid, creo que todos hemos hecho esto antes.

El interrogante es:
¿Cómo hacer para Agregar la nueva columna al objeto TADOtable (Lo que se hace en tiempo de diseño) y posteriormente mostrar en el DbGrid esa nueva columna pero mediante código, es decir en tiempo de ejecución del programa.?
Espero haberme hecho entender.
De antemano gracias por la colaboración

Hola Oscar, como te dice Marcos no añadas tus campos como persistentes, así cuando ejecutes el Alter Table y luego hagas un Close y un Open de tu AdoTable ya tendras el nuevo campo que has añadido.

Saluditos

luisgutierrezb 21-01-2009 16:05:48

como te dijeron antes, no los hagas persistentes lo que puedes hacer en tiempo de ejecucion es un for para revisar y si es tipo float por ejemplo le puedes poner el formato de separador de miles, si es fecha el formato de fecha y asi... nada mas seria algo asi como
Código Delphi [-]
if dataset.fields[i].fieldtype = ftDateTime then
  TDateTimefield(dataset.fields[i]).displayformat := 'dd/mmm/yyyy';


La franja horaria es GMT +2. Ahora son las 14:20:42.

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