Antonio, tu ayuda por favor

Antonio, tu ayuda por favor

Postby Armando » Fri May 26, 2023 12:55 am

Hola Antonio:

Primero, una disculpa por molestarte.

Podrías pedir a Mr. Rao, le tire un ojo a este error?

viewtopic.php?f=3&t=43196

Saludos y muchas gracias
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3228
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Antonio, tu ayuda por favor

Postby Antonio Linares » Fri May 26, 2023 8:35 am

Mensaje enviado,

gracias!
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Antonio, tu ayuda por favor

Postby JESUS MARIN » Fri May 26, 2023 10:57 am

Buenos dias Armando

¿ puedes hacer esta pequeña prueba para comprobar si cierras la tabla ?
Code: Select all  Expand view

STATIC FUNCTION CloseTable()
    oWnd        := NIL

    IF oRsHdr <> NIL
        IF oRsHdr:State() = adStateOpen
            MsgWait("Cerrando tabla oRsHdr","Atención",2)     < --------- añade esta linea
            oRsHdr:Close()
        ENDIF
    ENDIF
RETURN(.T.)


Leyendo tu código y el error 2147352567, parace una excepción de tipo DISP_E_EXCEPTION. La función que intenta leer la estructura devuelve un error (posiblemente no controlado). Viendo el video y observando que la primera vez si funciona y la segunda no, buscaría en la creación de la tabla.
La prueba que te pido es para ver si realmente la tabla se ha cerrado correctamente.
Si se cierra, miraría en la creación de la tabla la segunda vez.
Por ejemplo, en vez de poner :
Code: Select all  Expand view
  IF oRsHdr == nil
        MsgStop("I can't open the table HDRVDA !",oApp:cAplicacion)
        FW_ShowAdoError(oApp:oCon)
      RETURN(.F.)
   ENDIF


pondria :
Code: Select all  Expand view
  IF VALTYPE(oRsHdr) <> "O"           // si no es un objeto
        MsgStop("I can't open the table HDRVDA !",oApp:cAplicacion)
        FW_ShowAdoError(oApp:oCon)
      RETURN(.F.)
   ENDIF


Es solo una idea. No estoy muy puesto en SQL

Saludos
Jesús Marín
JESUS MARIN
 
Posts: 176
Joined: Wed Jan 02, 2019 8:36 am

Re: Antonio, tu ayuda por favor

Postby Armando » Fri May 26, 2023 4:44 pm

Master Antonio y Jesús Marin:

Agradezco tu interés y apoyo, pero no, ninguna de las sugerencias solucionó el problema.

Como bien analizaste, la primera vez que entro con la tabla vacía, se agregan los dos
registros, uno de entrada y el siguiente de salida, y se muestran en el browse sin problema.

Al salir y regresar a seguir aumentando más registros, el browse tira el problema, ya probé
la primera sugerencia de Jesús y sí se cierra la tabla, también probé la segunda sugerencia y el problema
persiste.

Más datos, estoy simulando movimientos en un almacén, entradas y salidas, en las salidas
se debe llenar el campo HDR_SUC que contiene el número de la sucursal destino, no es el
caso de las entradas, ahí no hay sucursal destino, por esta razón el campo es Null

Image

Lo curioso es que con solo invertir el orden en que se graban los registros, primero la salida y
después la entrada, todo funciona al 100.

Saludos y gracias nuevamente
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3228
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Antonio, tu ayuda por favor

Postby JESUS MARIN » Fri May 26, 2023 5:27 pm

Armando

Has probado a eliminar esta linea ?

Code: Select all  Expand view
oRsHdr:Fields("HDR_SUC"):Value   := AdoNull()   // Only out movs has value


En el movimiento de salida no grabas nada en el campo HDR_REF.
¿ qué ocurre si no grabas nada en el campo HDR_SUC ?

Saludos
Jesús Marín
JESUS MARIN
 
Posts: 176
Joined: Wed Jan 02, 2019 8:36 am

Re: Antonio, tu ayuda por favor

Postby Armando » Fri May 26, 2023 9:49 pm

Jesús:

Gracias, el problema sigue igual, grabando o no el Null.

Quitando el LEFT JOIN a la tabla sucursales, el problema se soluciona, peroooo
necesito mostrar el nombre de la sucursal en el Browse.

Empiezo a pensar que puede ser un pequeño bug en la clase TXBrowse, y que solo
el experto, Mr. Rao, no puede sacar del problema.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3228
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 24 guests