Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-02-2007
jlrbotella jlrbotella is offline
Miembro
 
Registrado: ene 2007
Posts: 185
Poder: 18
jlrbotella Va por buen camino
Crear campos TFields en diseño

Hola:

Actualmente tengo una Tabla llamada Pepe, con 2 campo (codigo y descripción), y me gustaría crear los campos de manera manual. Para ello tengo una clase TTable donde TableName = "pepe", pero no se como obtener los campos de la tabla, para modificar las propiedades de los TFields.


Gracias de antemano,

Saludos,
JL
Responder Con Cita
  #2  
Antiguo 09-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
¿Qué tipo de tablas son?

Si son planas (dbase, paradox), tienes el Database desktop.

con un query podrías hacerlo:
Código Delphi [-]
query1.sql.text := ' alter table add total numeric';
query1.Execsql

Es lenguaje DDL (Data Definition Language) de SQL, puedes hacerlo y bastante simple.

¿no te sirvió FieldDefs para ver los campos existentes ?... raro... Si tienes alguna duda no dudes en preguntar.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 09-02-2007
jlrbotella jlrbotella is offline
Miembro
 
Registrado: ene 2007
Posts: 185
Poder: 18
jlrbotella Va por buen camino
TFields

Hola:

Creo que no me he explicado bien. Cuando creamos un componente en modo diseño tipo TTable, con el botón de la derecha podemos añadir los campos que hay, así como la visualización y máscaras del campo.

Según lo que he leído hay que usar la función TfieldsDefs, pero no se donde puedo obtener ayuda.

Gracias,
JL
Responder Con Cita
  #4  
Antiguo 09-02-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Espero que te sirva el siguiente ejemplo, asumiendo que vamos a crear el campo en un TQuery llamado Query1:
Código Delphi [-]
 
var
  Campo :TFloatField;
begin
  Campo := TFloatField.Create(Self);
  Campo.Precision := 15;
  Campo.FieldName := 'Nombre_Columna';
  Campo.Name := 'NombreDelCampo';
  Campo.DisplayLabel := 'CampoEnEjecucion';
  Campo.DisplayFormat := '###,###,###,###.00';
  Campo.DataSet := Query1;
  Query1.FieldDefs.UpDate;
end;
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #5  
Antiguo 12-02-2007
jlrbotella jlrbotella is offline
Miembro
 
Registrado: ene 2007
Posts: 185
Poder: 18
jlrbotella Va por buen camino
Hola:

Te he estado revisando el código anterior, y no logro entender la última línea de:

Query1.FieldDefs.UpDate;

Entiendo que lo que hace es actualizar la definición de la lista de campo de la consulta query1, pero cómo se liga el campo que has creado a la definición de los tfielddefs, ya que veo que el campo Tfloatfield lo ligas al dataset query1, pero no se liga al tfieldefs?.

Gracias por tu ayuda,
JL
Responder Con Cita
  #6  
Antiguo 12-02-2007
jlrbotella jlrbotella is offline
Miembro
 
Registrado: ene 2007
Posts: 185
Poder: 18
jlrbotella Va por buen camino
Tfieldsdefs update

Hola:

Y por último, ¿cómo puedo modificar la propiedad de displaylabel o displayformat, de un campo previamente creado en modo diseño?.

Más o menos lo haría así, pero no me funciona, porque la propiedad displayname no esta tfielddef.


Código Delphi [-]

var
i : integer;
campo : TFieldDef;
begin
ifxtable1.FieldDefs.Update;
ifxtable1.indexdefs.update;
for i := 0 to ifxtable1.FieldDefs.Count - 1 do
begin
campo := ifxtable1.FieldDefs[i];
campo.displaylabel := 'Mi campo';
ifxtable1.FieldDefs[i].Assign(campo);
end;
ifxtable1.FieldDefs.Update;
ifxtable1.indexdefs.update;
end;
Responder Con Cita
  #7  
Antiguo 12-02-2007
jlrbotella jlrbotella is offline
Miembro
 
Registrado: ene 2007
Posts: 185
Poder: 18
jlrbotella Va por buen camino
TFields

Hola:

Ya he podido modificar las propiedades de los campos de una tabla, usando la siguiente forma:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  i : smallint;
begin
    for i := 0 to ifxtable1.FieldCount-1 do
    begin
        if ifxtable1.Fields[i].ClassName = 'TIntegerField' then
        begin
          (ifxtable1.Fields[i] as TIntegerField).DisplayFormat := '000';
        end;
    end;
end;

Pero no funciona si no obtienes la lista de fields desde el editor de comando, ¿alguién sabe como se hace esto en programación?.

Saludos,
JL
Responder Con Cita
  #8  
Antiguo 12-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
El campo creado, no tienes que agregarlo a FieldDefs, porque al asignar el Dataset de ese campo, delphi ya lo añade.

Para hacer lo que quieres:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  i : smallint;
begin
    ifxtable1.FieldDefs.Update; // hacemos que se actualice la lista de campos
    for i := 0 to ifxtable1.FieldCount-1 do
    begin
        if ifxtable1.Fields[i].ClassType is TIntegerField then
        begin
          TIntegerField(ifxtable1.Fields[i]).DisplayFormat := '000';
        end;
    end;
end;

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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 y verificar campos en Paradox David Conexión con bases de datos 5 28-01-2007 22:30:38
Tipos Numericos y TFields oliverinf Firebird e Interbase 2 08-10-2004 16:38:13
Crear BD con campos y subcampos SMTZ Tablas planas 2 13-06-2004 11:27:21
Crear campos en SQL JamesBond_Mx Conexión con bases de datos 3 02-04-2004 16:55:44
Crear eventos en campos dinámicos altp OOP 9 02-01-2004 19:17:22


La franja horaria es GMT +2. Ahora son las 13:26:03.


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