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
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Duda sobre ejemplo Sqlite3
Duda sobre ejemplo Sqlite3
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
> 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
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
> 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
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
> 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