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.

Uso de QueryRow

Foro público de Xailer en español
Responder
ddupre
Mensajes: 334
Registrado: Lun Nov 12, 2007 3:53 pm

Uso de QueryRow

Mensaje 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.
Fernando Leal
Mensajes: 294
Registrado: Jue Mar 13, 2008 3:03 pm

Uso de QueryRow

Mensaje 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
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Uso de QueryRow

Mensaje 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
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
ddupre
Mensajes: 334
Registrado: Lun Nov 12, 2007 3:53 pm

Uso de QueryRow

Mensaje 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
ddupre
Mensajes: 334
Registrado: Lun Nov 12, 2007 3:53 pm

Uso de QueryRow

Mensaje 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.
>
Responder