FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
for i := 1 to AdoQuery1.FieldCount-1 do
Combobox1.Items.Add(AdoQuery1.Fields[i].DisplayName);Saludos.... |
#3
|
||||
|
||||
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. |
#4
|
||||
|
||||
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 saludos |
#5
|
||||
|
||||
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: 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: 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. |
|
|
|