|
Página 1 de 1
|
Error En El Manejo De Transacciones
Autor |
Mensaje |
pixel
Usuario
Registrado: Marzo 2010
Mensajes: 5
Edad: 45 Ubicación:
|
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
|
#1 Miercoles, 28 Julio 2010, 19:24 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Error En El Manejo De Transacciones
¿En qué línea te da el error?
=================== No podemos regresar
|
#2 Miercoles, 28 Julio 2010, 20:23 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
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"
|
#3 Miercoles, 28 Julio 2010, 20:49 |
|
|
fabianfv
Analista Programador
Registrado: Octobre 2009
Mensajes: 495
Edad: 50 Ubicación:
|
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:
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.
|
#4 Jueves, 29 Julio 2010, 00:55 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
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
|
#5 Jueves, 29 Julio 2010, 09:41 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
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"
|
#6 Jueves, 29 Julio 2010, 15:35 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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
|
|
|
|
|