Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-10-2006
maravert maravert is offline
Miembro
 
Registrado: jul 2004
Ubicación: Xalapa, México
Posts: 158
Poder: 20
maravert Va por buen camino
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

Última edición por maravert fecha: 20-10-2006 a las 01:10:25.
Responder Con Cita
  #2  
Antiguo 19-10-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
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í:

Código Delphi [-]
Query2.Close;
Query2.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.ExecQuery; // Usa este método en lugar de Open


Saludos...
Responder Con Cita
  #3  
Antiguo 20-10-2006
maravert maravert is offline
Miembro
 
Registrado: jul 2004
Ubicación: Xalapa, México
Posts: 158
Poder: 20
maravert Va por buen camino
Gracias

Gracias por tu respuesta

Voy a checar ahora mismo.
muy agradecido, muy agradecido, muy agradecido
Responder Con Cita
  #4  
Antiguo 20-10-2006
maravert maravert is offline
Miembro
 
Registrado: jul 2004
Ubicación: Xalapa, México
Posts: 158
Poder: 20
maravert Va por buen camino
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
Responder Con Cita
  #5  
Antiguo 20-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Maeyanes ya te lo dijo, pero se te habrá pasado por alto:

Cita:
Query2.ExecQuery; // Usa este método en lugar de Open
Edito: Usas la cláusula LIKE en tus consultas pero no usas ningún comodin, o bien usas:
Código SQL [-]
where upper(clave) = :Clave

o bien usas
Código Delphi [-]
Query2.ParamByName('Clave').AsString := QuotedStr(Table3.FieldByName('Clave').AsString + '%';
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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 20-10-2006 a las 12:17:32.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Actualizar una tabla con una consulta de otra tabla JODELSA SQL 2 14-09-2006 04:07:01
actualizar tabla oracle jorgesl PHP 2 26-06-2006 19:29:48
Actualizar tabla con datos de otra tabla ElDioni SQL 2 02-05-2006 16:04:04
Fallo Nº Factura y Linea Factura CarmaZone Tablas planas 5 26-05-2005 11:17:19
actualizar tabla davidgaldo Conexión con bases de datos 5 18-02-2004 15:21:59


La franja horaria es GMT +2. Ahora son las 23:47:45.


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
Copyright 1996-2007 Club Delphi