PDA

Ver la Versión Completa : Query y campos de un DBComboBox


Alfonsoft
27-10-2007, 02:42:36
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?


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
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,



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!