Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Combobox y tquery (https://www.clubdelphi.com/foros/showthread.php?t=67259)

radge 08-04-2010 11:42:10

Combobox y tquery
 
Buenas ,estoy intentando recoger los registros de una consulta SQL y añadirlos a un combobox , el codigo seria este que funciona correctamente , pero me gustaria poder pasarle 2 valores , uno el que se "muestre" y otro con el que trabajar , ya que dependiendo del valor que selecciones luego volveré a hacer otra consulta SQL.

Código:

  q := TQuery.Create (nil);
  q.DatabaseName := MIBD.DatabaseName;
  q.SQL.Clear;
  qCadena := 'SELECT * From tabla';
  q.SQL.Add(qCadena);
  q.open;

  while not q.eof do begin
      combobox1.items.Add(q.FieldByName('campo1').asstring);
      q.next;
  end;

gracias radge

Caro 08-04-2010 15:53:36

Hola radge, puedes utilizar la función AddObjects, digamos que el otro campo es codigo y es de tipo Int:

Código Delphi [-]
   ...........................................
   while not q.eof do begin
      combobox1.Items.AddObject(q.FieldByName('campo1').asstring, TObject(q.FieldByName('codigo').asInteger));
      q.next;
  end;
 
  //Para recuperar el segundo valor
  Codigo := Integer(combobox1.Items.Objects[combobox1.ItemIndex]);

También puedes utilizar el componente DBLookupComboBox que se enlaza directamente con tu dataset.

Saluditos

Caro 08-04-2010 15:55:01

Muevo tu hilo al foro de conexión con base de datos.

Saluditos

ContraVeneno 08-04-2010 17:36:40

como dice Caro, deberías usar un DBLookupComboBo... esa para mi sería la única opción.


La franja horaria es GMT +2. Ahora son las 12:09:10.

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