Update un campo sumando existencia (Inventario)
Hola compañeros del foro, aqui vuelvo con un obstaculo que me he topado, he aqui el codigo:
Objetivo: estoy haciendo un sistema de inventario, estoy haciendo la entrada a traves de un DBGrid enlazado a una tabla temporal, en la tabla articulos hay un campo llamado cantidad, estoy tratando de hacer un update donde me sume la cantidad ingresada en la tabla temporal mas la cantidad en la tabla articulos. ejemplo: Cita:
al correr me sale el siguiente error: Cita:
Saludos. |
Hola
Para mi el orden no esta bien, pero bueno, tal vez funcione asi. Sabemos que ZSumaInventario hace toda la operacion, pero: Para empezar me gustaria saber: Cantidad Inv Cod ZInventario, 3 ZTemp, 3 Bueno que tipo de datos contienen cada uno de ellos, me lo puedo imaginar pero me parece mejor preguntarlo. Se nota que soy ademas de novato, curioso. Saludos |
Hola enecumene,
¿Podrías decirme en que parte del código te arroja el error? Al parecer dicho error se produce debido a que en tu consulta hay un campo Nulo por lo que al ejecutarse la instrucción SQL falla. Lo que se trató de hacer es convertir Null es un string... Esto me resulta rarísimo... ¿para que hacer conversiones de strings? ¿No es mejor estar guardandolo directamente como integer? Saludos, |
Cita:
Cod := el codigo o referencia del articulo donde la cual cumple como condicion. ZInventario[3] := es el campo cantidad de tipo integer de la tabla Articulos. ZTemp[3] := es el campo cantidad de tipo integer de la tabla temporal. Cita:
P.D.: se me habia olvidado decir que estoy trabajando con access y delphi7. Saludos. |
uffff!!!!, ya he ultilizado el 100% de mi pequeña cabecita y no he logrado el objetivo:(, pues seguire descansando y tomando mi cervecita:D.
Saludos. |
Hola
Intenta esta tonteria: Saludos |
Hola Caral, el mismo error:(.
Saludos. |
Hola
Me deja mal este error, no logro verlo, si puede poner el programa, me gustaria probarlo. Saludos |
Vale, el programa esta a medias vere como lo posteo, dame unos minutos.
Saludos. |
|
Ya lo tengo, lo voy a revisra
Ya lo comentamos, un minuto |
Hola
Veamos una prueba, a ver que datos muestra: Si lo puedes hacer con cod, tambien pues mejor. Saludos |
Ni siquiera salio el showmessage:
Cita:
|
Hola
Te pido que hagas esto por que me olvide que no tengo instalado zeos asi que no puedo correrlo. Intenta esto: Veamos Saludos |
de tres articulos que hay en la tabla me tiro una sola referencia, me imagino que esta bien o deberia aparecer todos?:
Cita:
|
Hola
Cambia esta linea, quiero ver que pasa. Saludos |
Hola
Perdona, tambien pruebalo con 2 en vez de 1. Saludos |
me salio el mismo showmessage del post #15, pero me estoy dando cuenta de algo, dejame hacer un prueba y luego te comento.
Saludos. |
Igual el showmessage del post #15 y no tira errores de las dos maneras. y la otra prueba que hice tambien fallo pense que era que habia un append de por medio y como estaba vacio era null, pero que va el mismo error.
Saludos. |
Hola
Tratemos de entender mas. Aqui hay dos mensajes cod e inv, veamos que nos envia Segun veo deberia enviar esto: el primer mensaje: Q2612A el segundo mensaje: 5 Saludos |
me los presento los dos sin problemas Q2612A y 5
|
Hola
Estoy perdido, pero me divierto mucho. Probemos esto: Aqui puede estar el asunto, veamos que pasa. Deberia: el primer mensaje: Q2612A el segundo mensaje: 10 Si se rompe algo no es mi culpa:D Saludos |
Creo que el problema es con el uso del .value y los parámetros. Value no hace una conversión automática de tipos.
Prueba lo siguiente
|
Añado una cosa, yo prefiero usar FieldByName que Fields. La razón es que si cambias la estructura de la tabla, tendrás que revisar el índice de Fields en todos los sitios. Quedaría algo así:
|
Hola
Esta es muy buena logica, lo pense tambien, pero no estaba seguro, por eso solicite que se pusieran los mensajes para ver que tipo de datos daba. Muy bueno basti Saludos |
efectivamente Basti me funciono perfecto, pero ahora tengo otro problema, que solo toma como referencia la primera fila de la tabla temporal que son los detalles que presenta el dbgrid y deberia de hacerlo con todos no? puse dos articulos y solamente me actualiza la primera fila.:confused::confused::confused:.
Saludos. |
Hola
Ya que me hicieron a un lado:D solo me queda lo ultimo. Cambia esto a ver: Saludos |
Hola Caral, y disculpa, pero no funciono y no hizo nada, no actualiza, solamente con ZTemp lo hace, pero solo lo hace con una sola linea, no hay una forma donde jale todos los registros del ref de ZTemp, porque si tengo dos articulos en la tabla temporal(ZTemp) en el showmessage me deberia salir por ejemplo "Q2612A, C7115A", pero solo me sale por ejemplo "C7115A".
Saludos. |
Cita:
Tienes que recorrer la tabla ZTemp.
|
Hola, Gracias Basti, Ahora si funciona, va de pelos, y muchas gracias a ti Caral por dedicar tu tiempo en ayudarme, te los agradezco a los dos. ya con esto hago la inversa en el modulo de salida de inventario igual en los ajustes de inventario.
Saludos. |
La franja horaria es GMT +2. Ahora son las 12:59:40. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi