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.

Problema con PostRequest de WebDataSource

Foro de Xailer profesional en español
User avatar
bingen
Posts: 440
Joined: Mon Jul 07, 2014 8:17 pm
Location: Bilbao
Contact:

Problema con PostRequest de WebDataSource

Postby bingen » Thu May 07, 2020 8:55 am

Buenas xTeam.

WebDataSource es una joyita que nos ha abierto muchos nuevos campos al poder trabajar directamente con bases de datos en Internet como si fueran locales y combinar ambos mundos para infinidad de posibilidades que antes ni soñabamos. Lo usamos mucho y recomiendo su uso.

Muy de vez en cuando nos da este error en un bucle que lee un dato de un webdatasouce cada minuto durante las 24 horas:

___________________Información del compilador y del entorno____________________

Versión Xailer: Xailer 6.9.1
Compilador: Harbour 3.2.0dev (r1803161710)
Compilador C/C++: MinGW GNU C 7.3 (32-bit)
Plataforma: Windows Server 2016 10.0
Mysql Server: Version 10.2.14-MariaDB
BBDD en uso: xgescontactos

______________________ Información detallada del error ______________________

Subsistema: BASE
Código de error: 1004
Estado: .F.
Descripción: No existe el m‚todo
Operación: POSTREQUEST
Argumentos: [ 1] = Tipo: U Valor: NIL [ 2] = Tipo: C Valor: WebDatasource/xa_wdsMySql.php?command=QUERYARRAY&validate=xxxxxxxxxxxxxxxxxxxxxxxxxx = Tipo: C Valor: data=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Fichero:
Código error SO: 0

Pila de llamadas:
TWEBDATASOURCE:REQUEST (599)
TWEBDATASOURCE:QUERYVALUE (394)
VERMENSAJESENTREUSUARIOS (850)

Y resulta que antes del postrequest pregunto si existe el Webdatasouce, lo abro y hago el request, pero llega al postrequest y el objeto es NIL.

//Mensajería a través de Web para aplicación móvil
If Appdata:lWebMensajes .And. Appdata:oWebDataSource<>Nil
AppData:oWebDataSource:lConnected := .T.
If AppData:oWebDataSource:lConnected
nClienteId := AppData:oWebDataSource:QueryValue("select id from clientes where nombre="+ValToSql(Appdata:cLicEmpresa))

Funciona perfectamente pero algunas mañanas llego y tengo este error en pantalla.

Gracias.
BiSoft Desarrollo de software profesional
http://www.bisoft.es
User avatar
ignacio
Site Admin
Posts: 8691
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

Re: Problema con PostRequest de WebDataSource

Postby ignacio » Thu May 07, 2020 9:36 am

Buenos días,

Está fallando en este línea:

Code: Select all

   WITH OBJECT ::oConnection
>>>>> hData := ::HttpValid( :PostRequest( ::cPhpModule + cGet, cPost ) )


Y el problema es que ::oConection vale NIL y esto sólo es posible si he llamado al método TWEbDataSource:Disconnect().

Unas líneas más arriba, en la línea 574 hay este código:

Code: Select all

   IF !::Ready()
      RETURN .f.
   ENDIF


Que comprueba si la conexión está lista y debería haber controlado el problema. No obstante pasale un valor .T. al método Ready() para que genere un error de ejecución.

Sin un ejemplo que reproduzca el error, poco más se puede hacer. Lo siento.

Saludos
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com

Return to “Spanish”