Cita:
Empezado por GonzaloDias
Hola amigos del foro,
les comento que me surgio un problemita con una consulta que quiero mostrar en un dblookupcombobox
Código Delphi [-]
form2.Query7.Close;
form2.Query7.SQL.Clear;
form2.Query7.SQL.add('select c.Curso_ID as ID, r.Nombre||'' ''||r.Referencia||'' ''||c.Costo as Nombre');
form2.Query7.SQL.add('from Cursos c, Referencias r');
form2.Query7.SQL.add('where c.Nombre = r.Referencia_ID');
form2.Query7.SQL.add('Order by r.Nombre');
form2.Query7.Open;
Luego el campo Nombre del query lo asigno al listfield del db lookupcombbx y me dice Type mismatch in expression. La verdad que con 2 campos de la tabla Referencias si funciona y lo muestra bien pero al agregar c.Costo o algun otro campo de Referencias en la 3er concatenacion me tira ese error. Sabrian porque este error ? sera algo de la concatenacion que me falta ? gracias de antemano
|
Hola Gonzalo.
Es extraño, el problema estará en la forma que haces las asignaciones al
TDBLookupComboBox...
De este modo me funciona correctamente:
Código Delphi
[-]
...
with IBQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT C.CURSO_ID AS ID, R.NOMBRE ||'' ''||R.REFERENCIA||'' ''||C.COSTO AS NOMBRE ');
SQL.Add('FROM CURSOS C, REFERENCIAS R ');
SQL.Add('WHERE C.NOMBRE = R.REFERENCIA_ID ');
SQL.Add('ORDER BY R.NOMBRE');
Open;
end;
DataSource1.DataSet:= IBQuery1;
DBLookupComboBox1.ListSource:= DataSource1;
DBLookupComboBox1.KeyField:= 'ID';
DBLookupComboBox1.ListField:= 'NOMBRE';
...
También revisá que haya un espacio al finalizar cada línea que agregues con el método,
Add (o al iniciar una nueva)
Saludos.