Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-04-2005
abogado abogado is offline
Registrado
 
Registrado: mar 2005
Posts: 5
Poder: 0
abogado Va por buen camino
coger nombre de campos de una tabla

hola,

como cojo en delphi el nombre de los campos de una tabla para meterlos en una combobox?
for i:=1 to adoquery2.fieldcount-1 do
begin
CBordenar.items.add(adoquery2.?????) ???? = no se que poner

muchas gracias.
Responder Con Cita
  #2  
Antiguo 17-04-2005
Avatar de Sotrono
Sotrono Sotrono is offline
Miembro
 
Registrado: abr 2004
Ubicación: Buenos Aires - Argentina
Posts: 396
Poder: 21
Sotrono Va por buen camino
for i := 1 to AdoQuery1.FieldCount-1 do
Combobox1.Items.Add(AdoQuery1.Fields[i].DisplayName);Saludos....
Responder Con Cita
  #3  
Antiguo 18-04-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Pero a la hora de usar ese campo para una consulta, usa AdoQuery1.Fields[i].FieldName), ya que 'DisplayName' es el título, el verdadero nombre es 'FieldName'

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 10-06-2005
Avatar de sakuragi
sakuragi sakuragi is offline
Miembro
 
Registrado: feb 2004
Ubicación: root
Posts: 1.435
Poder: 22
sakuragi Va por buen camino
hola que tal

tengo unas dudas

en que evento del combobox va ese ciclo?

el adoquery se deve ejecutar hantes o despues?

ya lo quise provar pero no me salio. prove en diferentes eventos de combobox y no me salio =S

Código:
 adoquery1.sql.clear;
 adoquery1.sql.add('select * from tabla')
 adoquery1.open;
   
 forr i := 1 to AdoQuery1.FieldCount-1 do
         Combobox1.Items.Add(AdoQuery1.Fields[i].DisplayName)
 															   FieldName
lo prove con displayname y fieldname


saludos
__________________
OpenSuse OpenOffice.org icomputo
Responder Con Cita
  #5  
Antiguo 10-06-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
No tienes por qué utilizarlo en un evento específico del combo:

FormCreate
FormShow
FormActivate
FormResize

Estos eventos se ejecutan en ese mismo orden, FormResize, se reproduce
muchisimas veces, así que no es el adecuado. FormActivate depende; si es
una aplicación con varias ventanas, o puedes saltar de una ventana a otra,
tambien se producirá varias veces.

Como vas a usar el bucle for accediendo a los campos del Adoquery, el
adoquery debe estar abierto antes.

Por cierto, el bucle for debe empezar en cero si quieres coger todos los
campos.

Tambien puedes hacer otra cosa:
Código Delphi [-]
procedure FormCreate
for i:=0 to ado.fields.count-1 do
  combo.items.AddObject(ado.fields[i].DisplayName, ado.Fields[i]);
Con esto estas añadiendo a cada item del combo, el DisplayName, y estas
guardando el Campo Asociado, o sea el campo de tipo TField; de tal forma
que mostramos en el combo los "DisplayNames", que son mas descriptivos
para el usuario, y despues, cuando lo necesitamos por código, podemos
averiguar el nombre del campo que necesitamos nosotros como programador;
Me explico:

Código Delphi [-]
Necesito usar el item 1 del combo para una consulta sql, (por ejemplo)
var nombreCampo:string;
begin
  nombreCampo:= Tfield(combo.items[1]).FieldName
end;
1º- Como sabemos que el objeto que hemos guardado es un TField, hacemos
un Moldeo de tipos, es decir, forzamos a que delphi use el objeto como si fuera un Tfield( , despues accedemos al item que quereremos.
2º- despues de cerrar el parentesis del Casteo, ya podemos acceder a todas
las propiedades de un TField.

Edito: La consulta debe estar abierta en todo momento, ya que el objeto Tfield que guardamos en cada item, es un puntero, y está apuntando al campo del Adoquery.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 10-06-2005 a las 10:42:30.
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


La franja horaria es GMT +2. Ahora son las 14:32:15.


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