Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-06-2005
Avatar de sakuragi
sakuragi sakuragi is offline
Miembro
 
Registrado: feb 2004
Ubicación: root
Posts: 1.435
Poder: 24
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
  #2  
Antiguo 10-06-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
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


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 05:57:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi