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. |
for i := 1 to AdoQuery1.FieldCount-1 do
Combobox1.Items.Add(AdoQuery1.Fields[i].DisplayName);Saludos.... |
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 |
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; saludos |
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. |
La franja horaria es GMT +2. Ahora son las 11:40: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