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.
Erro en TSQLQuery de un TWebDataSource1
-
Jose Lopez
- Mensajes: 180
- Registrado: Mié Jun 16, 2010 2:33 pm
Erro en TSQLQuery de un TWebDataSource1
Buenas tardes.
He intentado hacer un :Refresh() de oSQLQuery conectado a un oWebDataSource1 y se produce el siguiente error:
***************************** Registro de errores *****************************
Exe: C:\xDesarrollos\Fuentes\Andrea\Usuarios\GUsuarios.exe
Version: 0.0.0.7
Build: 7
User name: jlcro
Computer name: DESKTOP-3LTTURE
Fecha: 07/07/2026
Hora: 13:26:04
Memoria libre: 2097151
Area actual: 1
------------------------- Información del compilador --------------------------
Versión Xailer: Xailer 9.2.3
Compilador: Harbour 3.2.0dev (r2307062207)
Compilador C/C++: MinGW GNU C 7.3 (32-bit)
Plataforma: Windows 8 6.2
----------------------- Información detallada del error -----------------------
Subsistema: BASE
Código de error: 1004
Estado: .F.
Descripción: Message not found
Operación: TWebRecords:NRECCOUNT
Argumentos: [ 1] = Tipo: O Valor:
Fichero:
Código error SO: 0
Pila de llamadas:
__ERRRT_SBASE (0)
TWEBRECORDS:ERROR (0)
(b)HBOBJECT (0)
TWEBRECORDS:MSGNOTFOUND (0)
TWEBRECORDS:NRECCOUNT (0)
TWEBRECORDS:REFRESH (580)
TSQLQUERY:REFRESH (994)
TFORMUSUARIOS:FORMINITIALIZE (84)
TFORMUSUARIOS:ONINITIALIZE (0)
TFORMUSUARIOS:NEW (211)
(b)TFORMMENU_CREATEFORM (110)
TTOOLBUTTON:ONCLICK (0)
(b)XTOOLBUTTON (41)
TTOOLBUTTON:CLICK (0)
TTOOLBAR:COMMAND (445)
TREBAR:WMCOMMAND (275)
RUNFORM (0)
TAPPLICATION:RUN (297)
MAIN (42)
Muchas gracias.
Pepe.
He intentado hacer un :Refresh() de oSQLQuery conectado a un oWebDataSource1 y se produce el siguiente error:
***************************** Registro de errores *****************************
Exe: C:\xDesarrollos\Fuentes\Andrea\Usuarios\GUsuarios.exe
Version: 0.0.0.7
Build: 7
User name: jlcro
Computer name: DESKTOP-3LTTURE
Fecha: 07/07/2026
Hora: 13:26:04
Memoria libre: 2097151
Area actual: 1
------------------------- Información del compilador --------------------------
Versión Xailer: Xailer 9.2.3
Compilador: Harbour 3.2.0dev (r2307062207)
Compilador C/C++: MinGW GNU C 7.3 (32-bit)
Plataforma: Windows 8 6.2
----------------------- Información detallada del error -----------------------
Subsistema: BASE
Código de error: 1004
Estado: .F.
Descripción: Message not found
Operación: TWebRecords:NRECCOUNT
Argumentos: [ 1] = Tipo: O Valor:
Fichero:
Código error SO: 0
Pila de llamadas:
__ERRRT_SBASE (0)
TWEBRECORDS:ERROR (0)
(b)HBOBJECT (0)
TWEBRECORDS:MSGNOTFOUND (0)
TWEBRECORDS:NRECCOUNT (0)
TWEBRECORDS:REFRESH (580)
TSQLQUERY:REFRESH (994)
TFORMUSUARIOS:FORMINITIALIZE (84)
TFORMUSUARIOS:ONINITIALIZE (0)
TFORMUSUARIOS:NEW (211)
(b)TFORMMENU_CREATEFORM (110)
TTOOLBUTTON:ONCLICK (0)
(b)XTOOLBUTTON (41)
TTOOLBUTTON:CLICK (0)
TTOOLBAR:COMMAND (445)
TREBAR:WMCOMMAND (275)
RUNFORM (0)
TAPPLICATION:RUN (297)
MAIN (42)
Muchas gracias.
Pepe.
-
Jose Lopez
- Mensajes: 180
- Registrado: Mié Jun 16, 2010 2:33 pm
Re: Erro en TSQLQuery de un TWebDataSource1
Ignacio podria ser que en la linea 580 del WebRecords.prg deberia cambiarse el IF nRecno <= ::nRecCount por IF nRecno <= ::RecCount
Gracias.
Gracias.
-
Jose Lopez
- Mensajes: 180
- Registrado: Mié Jun 16, 2010 2:33 pm
Re: Erro en TSQLQuery de un TWebDataSource1
También detecto que después de editar el registro y hacer un :Update() se queda a .T. el :lOnEdit() y no se pueden actualizar ni siquiera forzándolo, los Datacontrols asociados a este DataSet
Gracias
Gracias
-
Jose Lopez
- Mensajes: 180
- Registrado: Mié Jun 16, 2010 2:33 pm
Re: Erro en TSQLQuery de un TWebDataSource1
Siguiendo los fuentes he cambiado en la clase XWebRecords lineal 448 donde: IF !:Execute( cSql ) .OR. :nAffectedRows != 1 por IF !:Execute( cSql ) //.OR. :nAffectedRows != 1 y parece que va.
Resumiendo he tocado las líneas, 448 y 580
Saludos.
Resumiendo he tocado las líneas, 448 y 580
Saludos.
-
Jose Lopez
- Mensajes: 180
- Registrado: Mié Jun 16, 2010 2:33 pm
Re: Erro en TSQLQuery de un TWebDataSource1
Buenos días.
Ignacio necesita algún pequeño ejemplo para reproducir los errores o es suficiente con los datos facilitados.
Muchas gracias
Pepe.
Ignacio necesita algún pequeño ejemplo para reproducir los errores o es suficiente con los datos facilitados.
Muchas gracias
Pepe.
- ignacio
- Site Admin
- Mensajes: 9580
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Erro en TSQLQuery de un TWebDataSource1
Efectivamente nRecCount() es un typo. Ya está corregido. Con respecto al otro error necesitaría un ejemplo. Gracias.Jose Lopez escribió: Mié Jul 08, 2026 9:36 am Buenos días.
Ignacio necesita algún pequeño ejemplo para reproducir los errores o es suficiente con los datos facilitados.
Muchas gracias
Pepe.
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
- ignacio
- Site Admin
- Mensajes: 9580
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Erro en TSQLQuery de un TWebDataSource1
Es posible que la tabla que estés usando no tenga clave primaria y con la actualización de un registro se están actualizando varios registros a la vez. Has de poner clave primaria a la tabla. Seguramente cuando intentes poner clave primaria, te dará error por clave duplicada. Localiza la duplicidad y corrige el problema.Jose Lopez escribió: Mar Jul 07, 2026 5:03 pm Siguiendo los fuentes he cambiado en la clase XWebRecords lineal 448 donde: IF !:Execute( cSql ) .OR. :nAffectedRows != 1 por IF !:Execute( cSql ) //.OR. :nAffectedRows != 1 y parece que va.
Resumiendo he tocado las líneas, 448 y 580
Saludos.
Saludos
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
-
Jose Lopez
- Mensajes: 180
- Registrado: Mié Jun 16, 2010 2:33 pm
Re: Erro en TSQLQuery de un TWebDataSource1
Ignacio le paso la estructura de la tabla:
Campo Tipo Nulo Clave Por defecto Extra
"ID", "int(11)", "NO", "PRI", "", "auto_increment"
"USUARIO", "varchar(20)", "YES", "", "", ""
"PASS", "varchar(20)", "YES", "", "0000", ""
"IDUSERWEB", "int(11)", "NO", "", "0", ""
"NIF", "varchar(20)", "NO", "", "", ""
También indicarle el error: Descripción: Message not found
Operación: TWebRecords:NRECCOUNT en TWEBRECORDS:REFRESH (580)
Le ruego lo revise.
Muchas gracias.
Campo Tipo Nulo Clave Por defecto Extra
"ID", "int(11)", "NO", "PRI", "", "auto_increment"
"USUARIO", "varchar(20)", "YES", "", "", ""
"PASS", "varchar(20)", "YES", "", "0000", ""
"IDUSERWEB", "int(11)", "NO", "", "0", ""
"NIF", "varchar(20)", "NO", "", "", ""
También indicarle el error: Descripción: Message not found
Operación: TWebRecords:NRECCOUNT en TWEBRECORDS:REFRESH (580)
Le ruego lo revise.
Muchas gracias.
- ignacio
- Site Admin
- Mensajes: 9580
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Erro en TSQLQuery de un TWebDataSource1
Ya le he comentado que nRecCount(), es un error que ya está corregido; debería ser sin la 'n'. En cuanto a su otro error necesito un ejemplo. Gracias.
Un saludo
Nota adicional: Cuando pase la estructura de una tabla debería enviar el comando DDL.
El problema es que la operación afecta a más de una fila o no afecta a ninguna. Intente guardar el valor de la variable cSQL y ejecútela desde su programa de administración favorito de Mysql. Es posible que le ofrezca más información de lo que está pasando.Siguiendo los fuentes he cambiado en la clase XWebRecords lineal 448 donde: IF !:Execute( cSql ) .OR. :nAffectedRows != 1 por IF !:Execute( cSql ) //.OR. :nAffectedRows != 1 y parece que va.
Un saludo
Nota adicional: Cuando pase la estructura de una tabla debería enviar el comando DDL.
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
-
Jose Lopez
- Mensajes: 180
- Registrado: Mié Jun 16, 2010 2:33 pm
Re: Erro en TSQLQuery de un TWebDataSource1
Muchas gracias Ignacio, voy ha probar y le comento.
Y con respecto a: IF nRecno <= ::nRecCount que yo he cambiado por IF nRecno <= ::RecCount si revisa la linea 580 de WebRecords.prg creo que tiene un bug ya que dice: Descripción: Message not found
Operación: TWebRecords:NRECCOUNT
Yo creo que se a colado a n antes de RecCount
No se si ahora me explico.
Lo siento.
Gracias.
Y con respecto a: IF nRecno <= ::nRecCount que yo he cambiado por IF nRecno <= ::RecCount si revisa la linea 580 de WebRecords.prg creo que tiene un bug ya que dice: Descripción: Message not found
Operación: TWebRecords:NRECCOUNT
Yo creo que se a colado a n antes de RecCount
No se si ahora me explico.
Lo siento.
Gracias.
- ignacio
- Site Admin
- Mensajes: 9580
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Erro en TSQLQuery de un TWebDataSource1
Insisto: "Ya le he comentado que nRecCount(), es un error que ya está corregido"Jose Lopez escribió: Mié Jul 08, 2026 10:23 pm Muchas gracias Ignacio, voy ha probar y le comento.
Y con respecto a: IF nRecno <= ::nRecCount que yo he cambiado por IF nRecno <= ::RecCount si revisa la linea 580 de WebRecords.prg creo que tiene un bug ya que dice: Descripción: Message not found
Operación: TWebRecords:NRECCOUNT
Yo creo que se a colado a n antes de RecCount
No se si ahora me explico.
Lo siento.
Gracias.
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
-
Jose Lopez
- Mensajes: 180
- Registrado: Mié Jun 16, 2010 2:33 pm
Re: Erro en TSQLQuery de un TWebDataSource1
Perdón no vi el comentario donde lo indicabas. Lo siento.
Con respecto a: IF !:Execute( cSql ) .OR. :nAffectedRows != 1 he realizado esta prueba con el Metodo Execute y estos son los resultados:
LogDebug( ::oWebDataSource1:Execute( "UPDATE USUARIOS SET NIF='1' WHERE (ID = 19)","ERROR en Execute") ) Devuelve .T.
LogDebug( ::oWebDataSource1:nAffectedRows ) Devuelve 0
Clase: XWebDataSource
linea: 1097 cData := ::InternetRequest( cCommand, cData, nValid )
valor devuelto por el php
<?xml version='1.0' encoding='iso-8859-1'?>
<Query>
</Query>
El modulo php si actualiza el registro correctamente de hecho el metodo: Execute devuelve .T. pero no devuelve la etiqueta: "Affected_rows" con valor 1 y sí, solo se ha actualizado un registro el resto de registros no cambian su valor.
Mil gracias.
Pepe.
Con respecto a: IF !:Execute( cSql ) .OR. :nAffectedRows != 1 he realizado esta prueba con el Metodo Execute y estos son los resultados:
LogDebug( ::oWebDataSource1:Execute( "UPDATE USUARIOS SET NIF='1' WHERE (ID = 19)","ERROR en Execute") ) Devuelve .T.
LogDebug( ::oWebDataSource1:nAffectedRows ) Devuelve 0
Clase: XWebDataSource
linea: 1097 cData := ::InternetRequest( cCommand, cData, nValid )
valor devuelto por el php
<?xml version='1.0' encoding='iso-8859-1'?>
<Query>
</Query>
El modulo php si actualiza el registro correctamente de hecho el metodo: Execute devuelve .T. pero no devuelve la etiqueta: "Affected_rows" con valor 1 y sí, solo se ha actualizado un registro el resto de registros no cambian su valor.
Mil gracias.
Pepe.
-
Jose Lopez
- Mensajes: 180
- Registrado: Mié Jun 16, 2010 2:33 pm
Re: Erro en TSQLQuery de un TWebDataSource1
Según la IA en el archivo .php linea 302 if ( is_object( $result ) ) { Hay que cambiarla por: if ( $result ) { Dice: Si la consulta fue exitosa (puede ser un objeto o un TRUE booleano) para insert o update es: TRUE
Es Correcto?
Gracias por su paciencia.
Saludos.
Es Correcto?
Gracias por su paciencia.
Saludos.
- ignacio
- Site Admin
- Mensajes: 9580
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Erro en TSQLQuery de un TWebDataSource1
Hola,
Me temo que la IA se vuelve a equivocar. PHP puede devolver un valor booleano o un objeto. Cuando el resultado es correcto devuelve un objeto, cuando hay un error devuelve un valor falso. PHP es un asco. La IA debería saberlo
Me temo que la IA se vuelve a equivocar. PHP puede devolver un valor booleano o un objeto. Cuando el resultado es correcto devuelve un objeto, cuando hay un error devuelve un valor falso. PHP es un asco. La IA debería saberlo
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
- ignacio
- Site Admin
- Mensajes: 9580
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Erro en TSQLQuery de un TWebDataSource1
Esto parece un error del módulo de PHP. No hay información devuelta. A ver si puede mandar un ejemplo. Graciasvalor devuelto por el php
<?xml version='1.0' encoding='iso-8859-1'?>
<Query>
</Query>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
-
Jose Lopez
- Mensajes: 180
- Registrado: Mié Jun 16, 2010 2:33 pm
Re: Erro en TSQLQuery de un TWebDataSource1
Ignacio he preparado un ejemplo usando la bd Neptuno de www.xailer.com siguiendo el ejemplo C:\Xailer9\Samples\DataControls\WebDataSet e intentando hacer un UPDATE de la tabla test. Pero parece que es de solo lectura.
¿Podría dejar la posibilidad de hacer UPDATE en la tabla: test ? Y subo el ejemplo al chat
Saludos.
¿Podría dejar la posibilidad de hacer UPDATE en la tabla: test ? Y subo el ejemplo al chat
Saludos.