Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Error En El Manejo De Transacciones
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Error En El Manejo De Transacciones 
 
Hola soy nuevo en el foro es la segunda vez que solicito su ayuda espero me puedan ayudar, de antemano gracias

Este es el codigo que tengo para de una transaccion en gambas y me marca error en el update de la tabla vtaproducto "Type Mismatch: wanted variant, got function instead" que estare haciendo mal


IF Global.conexion() = FALSE THEN
    Message.Info("Error de Conexion en la base de datos")
    RETURN FALSE
  END IF
  Global.cn.Begin
  hresult = Global.cn.Edit("vtapdetalle", "numerodeventa = &1 AND date(fechaventa) = &2", CInt(Text5.Text), Format$(CDate(Text4.Text), "yyyy/mm/dd"))
  FOR c = 0 TO hresult.Count - 1
      hresult.MoveTo(c)
      hresult!status = "1"
      hresult4 = Global.cn.Edit("productos", "clave = &1", CInt(hresult!clave))
      IF hresult4.Count > 0 THEN
          hresult4!stock = CInt(hresult4!stock) + CInt(hresult!piezas)
          hresult4.Update
      END IF
      hresult.Update
  NEXT
  
  hresult1 = Global.cn.Edit("vtaproducto", "numeroventa = &1 AND date(fecha) = &2", CInt(Text5.Text), Format$(CDate(Text4.Text), "yyyy/mm/dd"))
  IF hresult1.Count > 0 THEN
      hresult1!status = "1"
      hresult1.Update       '<---- MARCA ERROR Type Mismatch: wanted variant, got function instead
  END IF
  
  hresult2 = Global.cn.Edit("vtapxmp", "nventa = &1 AND date(fecha) = &2", CInt(Text5.Text), Format$(CDate(Text4.Text), "yyyy/mm/dd"))
  FOR c = 0 TO hresult2.Count - 1
      hresult2.MoveTo(c)
      hresult2!status = "1"
      hresult2.Update
  NEXT
  
  hresult3 = Global.cn.Edit("mclientes", "numventa = &1 AND date(fecha) = &2", CInt(Text5.Text), Format$(CDate(Text4.Text), "yyyy/mm/dd"))
  FOR c = 0 TO hresult3.Count - 1
      hresult3.MoveTo(c)
      hresult3!status = 1
      hresult3.Update
  NEXT
  
  Global.cn.Commit
  RETURN TRUE
  
FINALLY
  Message.Info("Se han guardado los datos con Exito")
CATCH

  Global.cn.Rollback
  Message.Error(DConv(Error.Text))
  RETURN FALSE

 



 
última edición por pixel el Miercoles, 28 Julio 2010, 19:25; editado 1 vez 
pixel - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error En El Manejo De Transacciones 
 
¿En qué línea te da el error?
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error En El Manejo De Transacciones 
 
shordi, el calor te está derritiendo el cerebro (o las gafas..) jeje

Está marcada con "<----------" en hresult.Update


Por cierto, de momento no encuentro la razón. Sigo mirando...

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error En El Manejo De Transacciones 
 
Ya Shordi o Jesus responderán a tu pregunta, yo sólo quiero señalar lo que ví como un error:

FINALLY
  Message.Info("Se han guardado los datos con Exito")
 


El código de FINALLY se ejecuta aún cuando se produzca un error, por lo que el mensaje "Se han guardado los datos con Exito" podría no ser adecuado.
 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error En El Manejo De Transacciones 
 
No veo claro el error. Todo parece correcto... salvo el retorcimiento de convertir a cadena el resultado de una función que convierte a fecha una cadena... ¿No te apañas con los valuebox?
De cualquier manera errores parecidos me encontré en su día con las traducciones... Tienes un campo que se llama fecha. Tienes una función que se llama Date, tienes una base de datos (por cierto ¿cuál es?) que según y como puede intentar traducir palabras.... (es sólo una idea, que cosas más raras me han pasado).

Sea como sea prueba a utilizar variables separadas y traduce primero cada función hasta que tengas lo que quieres grabar a la vista. Me explico, en lugar de:
hresult1 = Global.cn.Edit("vtaproducto", "numeroventa = &1 AND date(fecha) = &2", CInt(Text5.Text), Format$(CDate(Text4.Text), "yyyy/mm/dd"))
 

Prueba algo así como:
VarNum=Cint(Text5.Text)
Vardate=cDate(Text4.text)
VarString=format$(Vardate,"yyyy/mm/dd")
hresult1 = Global.cn.Edit("vtaproducto", "numeroventa = &1 AND date(fecha) = &2", varNum, varString)
 

Es exactamente lo mismo con más líneas, pero si hay algún error en los datos que tecleas en los textBox, puede controlarlo paso a paso...

Suerte
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error En El Manejo De Transacciones 
 
Subscribo el error que menciona fabianfv y también lo que dice shordi, al menos para intentar localizar el error.

Una forma bastante buena de depurar tu programa es mediante puntos de interrupción colocados estratégicamente en el código. De esa forma verás dónde se produce el error, antes o después de un determinado punto. También es posible hacerlo cuando el error ya se ha producido y el programa se detiene en una línea. ¿Cómo? Muy fácil: una vez que el programa está detenido (en pausa debido al error o al punto de interrupción), te será muy sencillo analizar los valores de las variables simplemente seleccionándolas con el cursor, del mismo modo que hacemos para copiar texto. Es posible seleccionar variables o expresiones completas y automáticamente se abrirá un visor o un globo indicando el valor actual de la variable o expresión.

De esa forma enseguida verás dónde se encuentra el error, o si los valores son los esperados.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Error Al Coger Un Camino.. Y Controlar Un ... shekel General 0 Miercoles, 09 Junio 2010, 09:54 Ver último mensaje
shekel
No hay nuevos mensajes Guardar En Varias Tablas Con Transacciones pixel Bases de Datos 2 Jueves, 21 Julio 2011, 20:56 Ver último mensaje
pixel
No hay nuevos mensajes Manejo De Inventario jj231089 Bases de Datos 8 Lunes, 09 Septiembre 2013, 15:54 Ver último mensaje
shordi
No hay nuevos mensajes Error En Los Iconos, Error De Gambas3 O De... v3ctor General 9 Domingo, 03 Noviembre 2019, 02:10 Ver último mensaje
v3ctor
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron