Bueno, como decía, en tú caso para mostrar info de una BD en controles standar, yo usaría datastores. Por ejemplo:
Defino este datastore en Instances Variables de la ventana donde vas a implementar tu consulta:
datastore ds_especialidad
En el evento Open de esa misma ventana, pongo:
integer i, n
ds_especialidad = create datastore
ds_especialidad.dataobject = "dw_especialidad"
ds_especialidad.settransobject(sqlca)
ds_especialidad.retrieve( )
n = ds_especialidad.rowcount( )
for i = 1 to n
ddlb_esp.additem(string(ds_especialidad.object.id_especialidad[i]))
next
// Lo que hace este pequeño código, es definir el datastore como variable de instancia de la ventana. Luego, creo el datastore en base a un Datawindows con los campos que va a tener el datastore. Capturo el nro de campos que tiene. Hago un for desde el 1 hasta n (nro de campos de la tabla) en el cual cargo en un ddlb las especialidades que se hallan en esa tabla, donde, id_especialidad es el nombre del campo de la tabla Especialidad a la cual hace referencia en el ds y que se cargará en el ddlb...
Espero te sirva. Con el uso de datastores podrás cargar datos en controles standar...