Página 1 de 1

Fallos en Xailer 7 y siguientes

Publicado: Jue Abr 15, 2021 2:52 am
por Daniel Pechir
Hola a todos

A partir de las versión 7, los DataSets querys mandan demasiados errores, cosa que no sucede hasta las versiones 6
tuve que regresar a compilar con la 6

¿ Alguno de ustedes sabe el motivo ?

Gracias por compartir

Daniel Pechir

Re: Fallos en Xailer 7 y siguientes

Publicado: Jue Abr 15, 2021 10:21 am
por ignacio
Buenos días,

Si no indica los errores es IMPOSIBLE ayudarle.

Si se pueden reproducir con algún ejemplo, diga cual y forma de reproducirlo. También ayudaría que indicará con que motor de bases de datos y en que operaciones falla. Si hay un error.log, envíelo.

Saludos

Re: Fallos en Xailer 7 y siguientes

Publicado: Jue Abr 15, 2021 8:17 pm
por Daniel Pechir
Ejemplo de código donde se genera el error:
Error .png
Error .png (9.29 KiB) Visto 2464 veces
WITH OBJECT ::oAuxi
:GoTop()

::oProgreso:nValue := 0
nProces := 0
nTotProces := :KeyCount()

::oMsg:cText := 'Calculando Saldos'
::oMsg:lVisible := .T.

STORE CToD(' / / ') TO FECHRE,VFECHRE

DO WHILE !:Eof()
IF !:Num = NIL
STORE :REFE TO VPASE
STORE :FECHA+WDIASGRACIA TO FECHRE,VFECHRE
VSALREF := 0
DO WHILE :REFE = VPASE
VSALREF += :CARGOS - :CREDITO
VSALTOT += :CARGOS - :CREDITO

DO CASE
CASE Date() - FECHRE <= 15
VCOR += :CARGOS - :CREDITO
CASE Date() - FECHRE > 15 .AND. Date() - FECHRE <= 30
V15 += :CARGOS - :CREDITO
CASE Date() - FECHRE > 30 .AND. Date() - FECHRE <= 60
V30 += :CARGOS - :CREDITO
CASE Date() - FECHRE > 60
V60 += :CARGOS - :CREDITO
ENDCASE
******************************************************************************************
:FastEdit() <-----------------------
:Salre := VSALREF <-----------------------
:Saltot := VSALTOT <-----------------------
:FastUpdate() <-----------------------
*******************************************************************************************
:Skip()
nProces += 1
::oProgreso:nValue := Round(nProces/nTotProces*100,0)
ENDDO

DO CASE
CASE VDIAS > 0
IF VFECHRE+VDIAS <= Date()
VVENCI += VSALREF
ENDIF
CASE VDIAS = 0
VVENCI += VSALREF
ENDCASE

ELSE

:Skip()
nProces += 1
::oProgreso:nValue := Round(nProces/nTotProces*100,0)

ENDIF
ENDDO
END

Re: Fallos en Xailer 7 y siguientes

Publicado: Jue Abr 15, 2021 10:02 pm
por Daniel Pechir
DB MySQL

Reitero que todo funciona de maravilla hasta la versión 6

Saludos

Daniel Pechir

Re: Fallos en Xailer 7 y siguientes

Publicado: Jue Abr 15, 2021 10:40 pm
por jfgimenez
Daniel,

por favor, muestra la estructura de la tabla. Puedes verla con "SHOW CREATE TABLE Auxcli1"

Re: Fallos en Xailer 7 y siguientes

Publicado: Vie Abr 16, 2021 6:31 pm
por Daniel Pechir
Hola

Con éste código se crea la tabla

PUBLIC cArch := "Auxcli"+PUSUARIO // Auxcli

cCmdQuery:= "DROP TABLE IF EXISTS "+cArch
AppData:oMySqlDS:Execute( cCmdQuery )

cCmdQuery:= "CREATE TABLE IF NOT EXISTS "+cArch+" (regis int auto_increment, "+;
"Num Int, Fecha Date, Refe Varchar(8), Ndoc Varchar(10), "+;
"Folio Varchar(8), Cargos Double, Credito Double, Salre Double, "+;
"Saltot Double, Concepto Varchar(15), Nche Int, Banco Varchar(20), "+;
"Tven varchar(1), primary key (regis))"

AppData:oMySqlDS:Execute( cCmdQuery )

Gracias por contestar

Saludos

Re: Fallos en Xailer 7 y siguientes

Publicado: Vie Abr 16, 2021 6:33 pm
por Daniel Pechir
Y perdón por mi insistencia

Funciona de maravilla hasta la versión 6

Saludos

Re: Fallos en Xailer 7 y siguientes

Publicado: Vie Abr 16, 2021 8:09 pm
por Daniel Pechir
Usando MariaDB con MySQL

Re: Fallos en Xailer 7 y siguientes

Publicado: Lun Abr 19, 2021 11:26 am
por ignacio
Buenos días,

Me he tomado el tiempo de crear su tabla en un servidor propio alojado en Internet y he realizado el siguiente proceso:

1) Alta de registros:

Código: Seleccionar todo

METHOD Button1Click( oSender ) CLASS TForm1

   local nFor

   with object ::oSQLTable1
      FOR nFor := 1 to 1000
         :FastAppend()
         :SalRe := 0
         :SalTot := 0
         :FastUpdate()
         ::oProgressBar1:nValue := nFor
      next
   end with

RETURN Nil
No he tenido ningún error. A continuación he realizado el siguiente proceso:

2) Edición de registros:

Código: Seleccionar todo

METHOD Button1Click( oSender ) CLASS TForm1

   local nFor

   with object ::oSQLTable1
      FOR nFor := 1 to 1000
         :FastEdit()
         :SalRe := nFor
         :SalTot := nFor * 10
         :FastUpdate()
         :Skip()
         ::oProgressBar1:nValue := nFor
      next
   end with

RETURN Nil
Y tampoco he tenido ningún error.

Le ruego nos mande un PEQUEÑISIMO EJEMPLO que muestre el error para que podamos ayudarle. Siento no poder darle mejor respuesta.

Un saludo

Nota: Adjunto el script del resultado obtenido.

POSIBLE CAUSA: Repensando un poco en su problema, es posible que la causa se produzca porque el dataset que está intentando actualizar lo está mostrando también en un Browse y el browse al repintarse, provoca un cambio de registro de activo que impide la posterior actualización. En dicho caso la solución es sencilla: Cree un nuevo dataset que no esté vinculado con ningún Browse.

Re: Fallos en Xailer 7 y siguientes

Publicado: Lun Abr 19, 2021 7:59 pm
por Daniel Pechir
Muchísimas gracias Ignacio por su tiempo

El ejemplo con el mensaje de error es el que muestro arriba
Y es a manera de ejemplo ya que con la versión 7, en todos los programas donde agrego registros al DataSet, muestra el error de que el campo cambió despúes del edit

Saludos y nuevamente Gracias

Re: Fallos en Xailer 7 y siguientes

Publicado: Mar Abr 20, 2021 2:28 pm
por ignacio
Proyecto de ejemplo que se pueda compilar y enlazar creando un ejecutable. Utilice la opción de menú Proyecto -> Exportar proyecto.

Gracias