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)
-   -   Query y campos de un DBComboBox (https://www.clubdelphi.com/foros/showthread.php?t=49697)

Alfonsoft 27-10-2007 02:42:36

Query y campos de un DBComboBox
 
Buenas,

Quiero que una query complete los campos de un cb, tal como lo tengo solo me trae el primer campo, lo que me hace pensar que hace falta un bucle... pero no se me ocurre como montarlo al tratarse de una query. ¿Me podéis ayudar?

Código Delphi [-]
DM.qprueba.Close;
DM.qprueba.SQL.Clear;
DM.qprueba.SQL.Add('SELECT PAIS');
DM.qprueba.SQL.Add('FROM PAISES');
DM.qprueba.active := true;
DM.qprueba.Open;

cbPaises.DataSource :=  DM.dsPrueba;
cbPaises.DataField :=  'Pais';


Gracias,

Luis F. Orjuela 27-10-2007 04:13:44

Primero debes definir qué deseas utilizar un ComboBox o un DBComboBox...

En el primer caso, este componente guarda strings utilizando para ello su propiedad Items...

Ahora el componente DBComboBox, muestra el dato almacenado del registro actual de la tabla o Query asociado a éste componente..

Pero si usted lo que quiere es tener la posibilidad de mostrar varias ocurrencias para un campo de su tabla o query; lo mejor es utilizar un componente DBLookupComboBox, en la ayuda propia de Delphi, está la explicación de cada uno de ellos...


:)

Lepe 27-10-2007 04:15:11

Código Delphi [-]
DM.qprueba.Close;
DM.qprueba.SQL.Clear;
DM.qprueba.SQL.Add('SELECT PAIS');
DM.qprueba.SQL.Add('FROM PAISES');

DM.qprueba.Open;
while not dm.qprueba.eof do
begin
  cbpaises.items.add(dm.qprueba.fieldbyname('Pais').AsString);
  dm.qprueba.next;
end;
cbPaises.DataSource :=  DM.dsPrueba;
cbPaises.DataField :=  'Pais';


Saludetes

Alfonsoft 27-10-2007 14:44:44

Buenas,

Era un DBComboBox.

Me ha funcionado perfectamente con ha planteado Lepe.

Muchísimas gracias a los dos!

Alfonsoft 27-10-2007 18:25:24

Buenas,

Más dudas... Ahora, despues del LIKE de la SELECT no se como ponerle las ' ' porque si las pongo Delphi las mete como código suyo y no como de la SELECT, no se si me explico bien...

A ver si me podéis ayudar...

Gracias,

Código Delphi [-]

procedure TFormClasificacion.cbPaisesChange(Sender: TObject);
begin
  DM.qprueba1.Close;
  DM.qprueba1.SQL.Clear;
  DM.qprueba1.SQL.Add('SELECT COMPETICION');
  DM.qprueba1.SQL.Add('FROM COMPETICIONES');
  DM.qprueba1.SQL.Add('WHERE ID_PAIS=');
  DM.qprueba1.SQL.Add('(SELECT ID_PAIS FROM PAISES');
  DM.qprueba1.SQL.Add('WHERE PAIS LIKE' + cbPaises.text);
  DM.qprueba1.SQL.Add(')');

DM.qprueba1.Open;
while not dm.qprueba1.eof do
begin
  cbcompeticiones.items.add(dm.qprueba1.fieldbyname('Competicion').AsString);
  dm.qprueba1.next;
end;
cbCompeticiones.DataSource :=  DM.dsPrueba1;
cbcompeticiones.DataField :=  'Competicion';
end;

Lepe 27-10-2007 20:42:15

QuotedStr

Saludos

Alfonsoft 27-10-2007 21:51:15

Una vez más gracias!


La franja horaria es GMT +2. Ahora son las 18:46:30.

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