Página 1 de 1
Duda sobre ejemplo Sqlite3
Publicado: Jue Ago 07, 2008 5:55 pm
por rafa
Estoy viendo que el combo no se alimenta realmente con todos los valores;
Para ello , he parcheado eso, pero... mi pregunta es el motivo porque
el QueryArray devuelve el array de la forma { {x1} , {x2} }, en vez de
la forma { x1, x2 }
Por que si no , para alimentarlo correctamente , deberemos de recorrer
el array OTRA VEZ para alimetar el combo.
METHOD DBComboBox1Create( oSender ) CLASS TForm1
LOCAL aData, aValues := {}, x , nLen
aData := ::oSqLiteDataSource1:QueryArray( "select state from
customer group by state order by state" )
nLen := len( aData )
For x := 1 to nLen
AADD( aValues, aData[x,1] )
Next
oSender:aItems := aValues
/* Código de Xailer
IF ::oSqLiteDataSource1:Execute( "select state from customer group
by state order by state",, @aData )
oSender:aItems := aData[1]
ENDIF
*/
RETURN Nil
Como digo , es simple curiosidad....
( Por cierto , si presionas en el browse que entra en modo editable, se
despliega los combos , cuando no lo deberia hacer... )
Saludos
Rafa Carmona
Duda sobre ejemplo Sqlite3
Publicado: Vie Ago 08, 2008 12:07 pm
por jfgimenez
Rafa,
> Estoy viendo que el combo no se alimenta realmente con todos los valores;
>
> Para ello , he parcheado eso, pero... mi pregunta es el motivo porque
> el QueryArray devuelve el array de la forma { {x1} , {x2} }, en vez de la
> forma { x1, x2 }
Porque ese array tiene la forma de un conjunto de registros, donde cada
elemento es un registro, que a su vez es un sub-array con los valores de los
campos de esos registros.
> ( Por cierto , si presionas en el browse que entra en modo editable, se
> despliega los combos , cuando no lo deberia hacer... )
No sé exactamente a qué te refieres.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
Duda sobre ejemplo Sqlite3
Publicado: Vie Ago 08, 2008 12:53 pm
por rafa
Jose F. Gimenez escribió:
> Rafa,
>
>> Estoy viendo que el combo no se alimenta realmente con todos los valores;
>>
>> Para ello , he parcheado eso, pero... mi pregunta es el motivo porque
>> el QueryArray devuelve el array de la forma { {x1} , {x2} }, en vez de la
>> forma { x1, x2 }
>
> Porque ese array tiene la forma de un conjunto de registros, donde cada
> elemento es un registro, que a su vez es un sub-array con los valores de los
> campos de esos registros.
>
OH!!! Ahora lo veo....quedaría como;
"Select id, nombre, apellido1 from clientes", devuelve un array ;
{ { 1, pepe, jose },;
[ 2, Luis, García } }
( Creo que mi ejemplo es más simple que tu explicación
teórica/conspiratoria ... jajajaja, porque me hice la pixa un lio. )
( Lo que pasa es que cuando el resultado es una columna, esperaba el
resultado en forma de un array unidimensional, de esta forma no
necesitamos crear un array paralelo.)
>
>> ( Por cierto , si presionas en el browse que entra en modo editable, se
>> despliega los combos , cuando no lo deberia hacer... )
>
> No sé exactamente a qué te refieres.
>
Pues que en el ejemplo NO MUESTRA LOS ESTADOS, solamente muestra el
primer elemento, por lo tanto, ese combo no hace realmente nada.
Creo entender que esta para mostrar TODOS los estados, que es lo que
hace la query, pero solamente estas cogiendo alimentando el browse con
el primero, no con todos.
Saludos
Rafa Carmona
Duda sobre ejemplo Sqlite3
Publicado: Vie Ago 08, 2008 2:11 pm
por jfgimenez
Rafa,
> Pues que en el ejemplo NO MUESTRA LOS ESTADOS, solamente muestra el primer
> elemento, por lo tanto, ese combo no hace realmente nada.
> Creo entender que esta para mostrar TODOS los estados, que es lo que hace
> la query, pero solamente estas cogiendo alimentando el browse con el
> primero, no con todos.
Pues sí, tienes toda la razón. Ese método debería quedar así:
//---------------------------------------------------------- --------------------
METHOD DBComboBox1Create( oSender ) CLASS TForm1
LOCAL aData, aItems := {}
IF ::oSqLiteDataSource1:Execute( "select state from customer group by
state order by state",, @aData )
AEval( aData, {| x | AAdd( aItems, x[ 1 ] ) } )
oSender:aItems := aItems
ENDIF
RETURN Nil
//---------------------------------------------------------- --------------------
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info