Página 1 de 1

Uso de QueryRow

Publicado: Sab Sep 04, 2010 11:29 pm
por ddupre
Hola Foro:
Utilizando MySQL como mi base de datos estoy intentando recuperar los
valores de las columnas de una fila.
Para ello quiero utilizar el método QueryRow (que según interpreto en el
manual de Xailer sirve para lo que quiero)armando la instrucción de esta
forma:
local aData, cSelect
WITH OBJECT Appdata:oMventas
aData := :QueryRow( "SELECT * FROM usuarios WHERE nroempresa = " +
ValToStr(Appdata:nNroEmpresa) + " AND nombre = " +
Valtostr(Appdata:cUsuario))
END WITH
msginfo(aData)
El resultado de esto es aData vací­o (lo que aparece en msginfo es {,,,})
y a continuación un aviso que dice:
Abnormal program termination
Aquí­ mis preguntas:
Primero aclaro que el juego de datos que utilizo contiene lo que quiero
recuperar con el select y que buscando en todos los mensajes del foro y
encontré solo uno que muestra un ejemplo del uso del QueryRow, el cual
me ayudó a construir la sentencia.
1) Alguna idea de porque aparece ese mensaje?
2) Hay alguna otra forma de obtener los datos de una fila (registro)?
Desde ya, gracias por toda ayuda que me puedan prestar.
Saludos
Daniel.

Uso de QueryRow

Publicado: Dom Sep 05, 2010 2:09 am
por Fernando Leal
Daniel
// 2) Hay alguna otra forma de obtener los datos de una fila (registro)?
Cambia QueryRow por QueryArray:
aData := :QueryArray( "SELECT * FROM usuarios WHERE nroempresa = " +
ValToStr(Appdata:nNroEmpresa) + " AND nombre = " +
Valtostr(Appdata:cUsuario))
Saludos
Fernando

Uso de QueryRow

Publicado: Dom Sep 05, 2010 2:42 pm
por jfgimenez
Daniel,
QueryRow() devuelve correctamente una fila de datos. En el caso de que no
encuentre esa fila, devuelve un array vacio.
Pero lo que no puedes hacer es mostrar un array con MsgInfo(). Cuando
MsgInfo() recibe un array, siempre muestra una cadena "{ ... }". Lo que sí­
estoy comprobando, es que hay un bug en MsgInfo() que puede producir un GPF
en esas circunstancias (ya lo he corregido).
Para mostrar esos datos, utiliza LogDebug() y los verás en la ventana del
debugger.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info

Uso de QueryRow

Publicado: Dom Sep 05, 2010 4:41 pm
por ddupre
Fernando
Muchas gracias por tu ayuda.
Lo probaré.
Saludos
El 04/09/10 21:09, Fernando Leal escribió:
> Daniel
>
> // 2) Hay alguna otra forma de obtener los datos de una fila
> (registro)?
>
> Cambia QueryRow por QueryArray:
>
> aData := :QueryArray( "SELECT * FROM usuarios WHERE
> nroempresa = " + ValToStr(Appdata:nNroEmpresa) + " AND nombre = " +
> Valtostr(Appdata:cUsuario))
>
>
> Saludos
> Fernando

Uso de QueryRow

Publicado: Dom Sep 05, 2010 4:42 pm
por ddupre
José:
Muchas gracias por tu ayuda y la aclaración, lo voy a probar con logdebug()
saludos
El 05/09/10 09:42, Jose F. Gimenez escribió:
> Daniel,
>
> QueryRow() devuelve correctamente una fila de datos. En el caso de que
> no encuentre esa fila, devuelve un array vacio.
>
> Pero lo que no puedes hacer es mostrar un array con MsgInfo(). Cuando
> MsgInfo() recibe un array, siempre muestra una cadena "{ ... }". Lo
> que sí­ estoy comprobando, es que hay un bug en MsgInfo() que puede
> producir un GPF en esas circunstancias (ya lo he corregido).
>
> Para mostrar esos datos, utiliza LogDebug() y los verás en la ventana
> del debugger.
>