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 13-03-2009
Adrianmex Adrianmex is offline
Miembro
 
Registrado: mar 2009
Posts: 12
Poder: 0
Adrianmex Va por buen camino
Campo nuevo en tiempo de ejecución

Hola, soy nuevo en el foro y también nuevo en esto de la programación con Delphi, pero de antemano les agradezco la lectura de mi cuestión.

Resulta que tengo una ventana con una Ttable que ya contiene campos creados con el Database Desktop y registros en esos campos; tengo además dos edit y un botón.

Lo que quiero (y no he podido hacer ) es que con el botón se agregue un campo tipo string nuevo y permanente a la Ttable sin que se elimine nada de la información que ya contiene dicha tabla para enseguida, por medio del segundo edit, agregar información al campo recién creado.

He probado con FieldDefs.Add (porque no sé nada de Alter Table ni cosas de ésas) pero no me marca error al agregarlo, sino hasta cuando quiero adicionar registros al campo recién creado me dice que el campo no existe, es decir, que al corroborar con el Database Desktop, efectivamente no me creo nada de campo.

Espero haberme dado a entender.

Saludos.
Responder Con Cita
  #2  
Antiguo 13-03-2009
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola,
mediante el fielddef que hablas, lo unico que estaras modificando es el componente TTable, y no la base de datos que representa. La manera mas comoda que conozco es la que comentas, usando alter table mediante un query SQL. Si no quieres hacerlo asi, y supongo que estas usando ODBC, la cosa se complicaria un poco.
Responder Con Cita
  #3  
Antiguo 13-03-2009
Adrianmex Adrianmex is offline
Miembro
 
Registrado: mar 2009
Posts: 12
Poder: 0
Adrianmex Va por buen camino
Gracias, Coso, por tu diligente respuesta.

Bueno, tendré que aprender más eso de Alter Table si es la única manera para solucionar mi problema.

Ahora, si no es mucha molestia, ¿me podrías indicar tú u otro que esté más instruído que yo en eso de SQL cómo puedo agregar el contenido de un edit a la instrucción Alter Table para que el nuevo campo se llame como el texto que muestra el Edit?

De antemano y de nuevo, gracias por tu ayuda.
Responder Con Cita
  #4  
Antiguo 13-03-2009
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Te dejo aqui un manual de sql basico : http://sql.1keydata.com/es/sql-alter-table.php

en cuanto a lo q me has dicho, deberias usar un componente query (y mas adelante, te aconsejo que usases los componentes ADO). Seria algo asi, quiza tenga algun fallo de sintaxis, comillas o parecido:

Código Delphi [-]
 
datasource1.Dataset := query1;
query1.Active := false;
query1.SQL.Text := 'alter table ' + nombretabla + ' add ' + edit1.text + ' varchar(50)';
query1.ExecSQL;

como ves, la sentencia sql no es mas que una string. No recuerdo si son necesarias las comillas, entonces debes usar QuotedStr(Edit1.Text). Tambien, si te da excepcion, prueba query1.Active := true: estoy habituado a usar los componentes ADO para estas cosas, y creo que son algo diferentes, a ver si salta alguien que use los nativos de delphi y te lo explica mejor. un saludo.

Última edición por coso fecha: 13-03-2009 a las 17:40:48.
Responder Con Cita
  #5  
Antiguo 13-03-2009
Adrianmex Adrianmex is offline
Miembro
 
Registrado: mar 2009
Posts: 12
Poder: 0
Adrianmex Va por buen camino
De nuevo gracias, Coso, por tu ayuda.

Estaré revisando ese vínculo que me has dado. Espero poderlo hacer así como me indicas.

Nos leemos en otro tema y que estés bien.

Saludos.
Responder Con Cita
  #6  
Antiguo 13-03-2009
NeoNew NeoNew is offline
Miembro
 
Registrado: mar 2009
Ubicación: Bogotá
Posts: 49
Poder: 0
NeoNew Va por buen camino
Bueno yo utilizo Absolute DataBase y es muy facil, si te sirve aquí esta.
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
Crear campo calculado en tiempo de ejecucion-Ibquery andresenlared Varios 12 19-06-2014 06:44:39
Debugear en tiempo de ejecucion ? ingel Varios 23 12-05-2006 19:23:13
Obtener el Nombre de un Campo en Tiempo Ejecucion Jvilomar Conexión con bases de datos 2 02-08-2004 23:05:22
Tiempo de ejecucion? st7 Varios 3 11-05-2004 22:03:28
Controles en tiempo de ejecución JCA OOP 4 13-02-2004 21:29:21


La franja horaria es GMT +2. Ahora son las 00:19:34.


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