Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-01-2009
OscarBravo OscarBravo is offline
Miembro
 
Registrado: feb 2007
Posts: 23
Poder: 0
OscarBravo Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 21-01-2009
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
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.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 21-01-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por OscarBravo Ver Mensaje
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
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #4  
Antiguo 21-01-2009
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
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';
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como crear campos de lookup en tiempo de ejecución David Conexión con bases de datos 1 24-05-2007 16:33:01
Problemas al crear un objeto en tiempo de ejecución vejerf Varios 5 13-02-2007 12:28:46
Objeto seleccionado en tiempo de ejecucion Javier Sotillos OOP 1 30-09-2005 09:09:38
Poner en tiempo ejecución un objeto dentro de cesar_picazo Varios 1 27-03-2004 16:25:32
Como agregar una banda en tiempo de ejecucion en otra pagina edo Impresión 2 29-07-2003 01:07:12


La franja horaria es GMT +2. Ahora son las 11:53:13.


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
Copyright 1996-2007 Club Delphi