Actualizar tabla en una factura
Hola, trabajo con Delohi 7 y Paradox.
Estoy capturando una factura en un Dbgrid que esta asociado a una tabla Ventas que tiene los campos (Clave, Cantidad, Precio, etc) Despues de capturarlas necesito descontar el campo cantidad (Ventas) de otra tabla llamada Productos (Clave, Existencias, .... )para actualizar las existencias, es decir Si vendo 20 productos los deberé descontar del stock (Tabla Prosuctos) Estoy haciendolo con el codigo siguiente: Código SQL [-] Query2.close; Query2.SQL.Clear; Query2.SQL.Add('UPDATE Productos SET Existencias = :Actuales WHERE UPPER(Clave) LIKE UPPER(:Clave)'); Query2.ParamByName('Actuales').Value := Query2.fieldbyname ('Existencias').AsFloat - Table3.fieldbyname ('Cantidad').asfloat; Query2.ParamByName('Clave').Value := Table3.fieldbyname ('Clave').asstring; Query2.Open; Me dice que no existe el campo Existencias aquí: Código SQL [-] Query2.ParamByName('Actuales').Value := Query2.fieldbyname ('Existencias').AsFloat Espero mucho puedan ayudarme o decirme como realizar esta actuaización Gracias |
Hasta donde puedo ver, Query2 tiene una sentencia Update con parámetros. Esta sentencia no devuelve campos, es por eso que Query2.FieldByName('Existencias') te marca ese error...
Esto no lo he probado, pero intenta hacerlo así:
Saludos... |
Gracias
Gracias por tu respuesta
Voy a checar ahora mismo. muy agradecido, muy agradecido, muy agradecido |
Hola, gracias por turespuesta he probado el codigo que me has dado
Código Delphi [-] Query2.Close; Query2.SQL.Clear; Query2.SQL.Add('UPDATE Productos SET Existencias = Existencias - :Cantidad WHERE UPPER(Clave) LIKE UPPER(:Clave)'); Query2.ParamByName('Cantidad').AsFloat := Table3.FieldByName('Cantidad').AsFloat; Query2.ParamByName('Clave').AsString := Table3.FieldByName('Clave').AsString; Query2.Open; // Usa este método en lugar de Open Pero me da este error: Error creating cursor handle Alguien podría ayudarme en esto? Gracias de antemano |
Maeyanes ya te lo dijo, pero se te habrá pasado por alto:
Cita:
o bien usas para añadirle el comodín y usar LIKE. Obviamente no es lo mismo usar "like" que usar "=", pero tú sabrás mejor qué quieres hacer. Saludos |
La franja horaria es GMT +2. Ahora son las 05:44:49. |
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