Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-08-2011
negrokau negrokau is offline
Miembro
NULL
 
Registrado: abr 2011
Posts: 210
Poder: 14
negrokau Va por buen camino
Talking Como actualizar registros!!!

hola a todos, y gracias por su tiempo, tengoun inconveniente en un formulario de facturacion, en donde voy cargando mercaderias de la tabla stock, funciona perfectamente, lo que necesito es que me descuente del stock la cantidad de las mercaderias que fui cargando en la tabla de facturacion,tengo una ejemplo pero solo me descuenta el ultimo registro cargado
Este es mi boton GUARDAR:
Código Delphi [-]
procedure TF_FACTURACION.GUARDARClick(Sender: TObject);
VAR
CANT: INTEGER;
begin
DM.Q_FACTURACION.Post;
DM.Transaction.CommitRetaining;
//////actualiza cantidad////////////////
DM.CONSULTA.CLOSE;
DM.CONSULTA.SQL.Clear;
DM.CONSULTA.SQL.Add('SELECT * FROM DETALLE_FACTURAS WHERE COD_FACT='+#39+COD_FACT.Text+#39' AND CODIGO='+#39+CODIGO2.Text+#39);
DM.CONSULTA.Open;

CANT:=DM.CONSULTA.FieldValues['CANTIDAD'];
DM.CONSULTA.CLOSE;
DM.CONSULTA.SQL.Clear;
DM.CONSULTA.SQL.Add('UPDATE STOCK SET CANTIDAD=CANTIDAD-'+inttostr(CANT)+' WHERE COD_STOCK='+#39+CODIGO2.text+#39);
DM.CONSULTA.ExecSQL;

end;
Como puedo hacer para que descuente todos los registros que cargue?
si no me explique bien, diganmepor favor, estoy aprendiendo todavia,y me cuesta mucho expresarme... gracias por su tiempo....
Responder Con Cita
  #2  
Antiguo 31-08-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por favor, negrokau, tengo que recomendarte en cada mensaje que escribes que leas nuestra guía de estilo, en este caso, como casi siempre, no has puesto un título descriptivo a la pregunta. Está bien que se te pase alguna vez, pero es que lo haces siempre, ya pienso que lo haces a propósito.
Responder Con Cita
  #3  
Antiguo 31-08-2011
negrokau negrokau is offline
Miembro
NULL
 
Registrado: abr 2011
Posts: 210
Poder: 14
negrokau Va por buen camino
Talking

Disculpa,aque te referis con título descriptivo?
Responder Con Cita
  #4  
Antiguo 31-08-2011
negrokau negrokau is offline
Miembro
NULL
 
Registrado: abr 2011
Posts: 210
Poder: 14
negrokau Va por buen camino
Talking

disculpen, la verdad no lo hago a proposito, lo volvere a hacer de nuevo en un nuevo hilo, disculpen las molestias...
Responder Con Cita
  #5  
Antiguo 31-08-2011
negrokau negrokau is offline
Miembro
NULL
 
Registrado: abr 2011
Posts: 210
Poder: 14
negrokau Va por buen camino
Talking Como actualizar registros que tengan la misma clave!!

hola a todos, y gracias por su tiempo, tengo un inconveniente en un formulario de facturacion, en donde voy cargando registros de la tabla stock y va agregando en un dbgrid, lo que necesito es que me actualize en la tabla stock los registro que fui cargando en la tabla de facturacion, tengo varios Registros con la misma Clave, como actualizo todos los que tengan La misma Clave, tengo una ejemplo pero solo me descuenta el ultimo registro cargado
Este es mi boton GUARDAR:
Código Delphi [-]
procedure TF_FACTURACION.GUARDARClick(Sender: TObject); VAR CANT: INTEGER; begin DM.Q_FACTURACION.Post; DM.Transaction.CommitRetaining; //////actualiza cantidad//////////////// DM.CONSULTA.CLOSE; DM.CONSULTA.SQL.Clear; DM.CONSULTA.SQL.Add('SELECT * FROM DETALLE_FACTURAS WHERE COD_FACT='+#39+COD_FACT.Text+#39' AND CODIGO='+#39+CODIGO2.Text+#39); DM.CONSULTA.Open;  CANT:=DM.CONSULTA.FieldValues['CANTIDAD']; DM.CONSULTA.CLOSE; DM.CONSULTA.SQL.Clear; DM.CONSULTA.SQL.Add('UPDATE STOCK SET CANTIDAD=CANTIDAD-'+inttostr(CANT)+' WHERE COD_STOCK='+#39+CODIGO2.text+#39); DM.CONSULTA.ExecSQL;  end;

Este tema ya lo agregue pero como me dijeron que no tenia un titulo descriptivo lo volvi a alzar, espero que ahora si este bien, y le pido que el hilo anterior lo eliminen, muchas gracias
Responder Con Cita
  #6  
Antiguo 31-08-2011
negrokau negrokau is offline
Miembro
NULL
 
Registrado: abr 2011
Posts: 210
Poder: 14
negrokau Va por buen camino
Talking

hola a todos, y gracias por su tiempo, tengo un inconveniente en un formulario de facturacion, en donde voy cargando registros de la tabla stock y va agregando en un dbgrid, lo que necesito es que me actualize en la tabla stock los registro que fui cargando en la tabla de facturacion, tengo varios Registros con la misma Clave, como actualizo todos los que tengan La misma Clave, tengo una ejemplo pero solo me descuenta el ultimo registro cargado
Este es mi boton GUARDAR:

Código Delphi [-]
procedure TF_FACTURACION.GUARDARClick(Sender: TObject);
VAR
CANT: INTEGER;
begin
DM.Q_FACTURACION.Post;
DM.Transaction.CommitRetaining;
//////actualiza cantidad////////////////
DM.CONSULTA.CLOSE;
DM.CONSULTA.SQL.Clear;
DM.CONSULTA.SQL.Add('SELECT * FROM DETALLE_FACTURAS WHERE COD_FACT='+#39+COD_FACT.Text+#39' AND CODIGO='+#39+CODIGO2.Text+#39);
DM.CONSULTA.Open;

CANT:=DM.CONSULTA.FieldValues['CANTIDAD'];
DM.CONSULTA.CLOSE;
DM.CONSULTA.SQL.Clear;
DM.CONSULTA.SQL.Add('UPDATE STOCK SET CANTIDAD=CANTIDAD-'+inttostr(CANT)+' WHERE COD_STOCK='+#39+CODIGO2.text+#39);
DM.CONSULTA.ExecSQL;

end;
Este tema ya lo agregue pero como me dijeron que no tenia un titulo descriptivo lo volvi a alzar, espero que ahora si este bien, y le pido que el hilo anterior lo eliminen, muchas gracias
Responder Con Cita
  #7  
Antiguo 31-08-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
que significa.... registros con la misma clave

amigo... no es el primer post que colocas... y creo que tampoco es la primera vez que te dicen esto:
te agradecería que fueras mas especifico, que para hacernos entender si es posible coloques gráficos o un dibujo de ejemplo, por mas que trato de interpretar lo que dices, no lo comprendo
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #8  
Antiguo 31-08-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Código SQL [-]
UPDATE STOCK SET CANTIDAD=CANTIDAD- ?CANT WHERE COD_STOCK=?CODIGO
Esto te modifica todos los registros cuyo COD_STOCK=?CODIGO.
En este caso resta ?CANT a la CANTIDAD.

¿Qué es lo que quieres? El segundo SQL que publicas hace lo que pides...
Responder Con Cita
  #9  
Antiguo 31-08-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por negrokau Ver Mensaje
disculpen, la verdad no lo hago a proposito, lo volvere a hacer de nuevo en un nuevo hilo, disculpen las molestias...
No, no, por favor, otro hilo no es necesario.

Cita:
Empezado por negrokau Ver Mensaje
Disculpa,aque te referis con título descriptivo?
Pero amigo, ¿has leído la guía de estilo alguna vez de las veces que te he recomendado que lo hagas?
Responder Con Cita
  #10  
Antiguo 31-08-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Un título descriptivo es el que resumen lo que se pregunta en el mensaje.

Si en el mensaje dices: ¿Cómo puedo cambiar de color las líneas de un dbgrid?.
Entonces en el título debes poner algo así como: Cómo cambiar color en líneas dbgrid.
Pero tu título (inadecuado) sería, por ejemplo: dbgrid

En este caso, si lo que preguntas es: lo que necesito es que me descuente del stock la cantidad de las mercaderias.
Pues un título descriptivo puede ser: Descontar cantidad de stock en tabla de mercaderías.
Pero un título inadecuado que no dice de qué trata el mensaje/pregunta es: Como actualizar registros!!!

Además que con '!!!' no estás preguntando nada, para preguntar es el signo de interrogación '¿?'.

Son sólo ejemplos, espero que lo entiendas, aunque está mucho mejor explicado en nuestra guía de estilo y no te llevará ni 3 minutos leerla.


p.d.: He unido los dos hilos porque es lo mismo.

Última edición por Casimiro Notevi fecha: 31-08-2011 a las 09:56:28.
Responder Con Cita
  #11  
Antiguo 31-08-2011
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
¿No deberías hacer un bucle?

Te actualiza sólo 1 registro porque no recorres la query que trae los datos.
Yo usaría 2 querys, 1 para recorrer la tabla y otra para actualizar los datos.
La primera tendría como código SQL "fijo" lo siguiente:
Código SQL [-]
SELECT CANTIDAD FROM DETALLE_FACTURAS WHERE (COD_FACT=:ParCOD_FACT) AND (CODIGO = :ParCODIGO)
NOTA: Si solamente te hace falta el campo CANTIDAD, no hagas un SELECT *
y la segunda tendría este código
Código SQL [-]
UPDATE STOCK SET CANTIDAD=CANTIDAD-:ParCANTIDAD WHERE (COD_STOCK= :ParCODIGO)

Y en delphi
Código Delphi [-]
procedure TF_FACTURACION.GUARDARClick(Sender: TObject);
begin
  DM.Q_FACTURACION.Post;
  DM.Transaction.CommitRetaining;
//////actualiza cantidad////////////////
  DM.CONSULTA.CLOSE;
  DM.CONSULTA.ParamByName('ParCOD_FACT').AsString := COD_FACT.Text;
  DM.CONSULTA.ParamByName('ParCODIGO').AsString := CODIGO2.Text;
  DM.CONSULTA.Open;
  while not(DM.CONSULTA.Eof)do
  begin
    DM.CONSULTA2.CLOSE; 
    DM.CONSULTA2.ParamByName('ParCODIGO').AsString := CODIGO2.Text;
    DM.CONSULTA2.ParamByName('ParCANTIDAD').AsFloat := DM.CONSULTA.FieldByName('CANTIDAD').AsFloat;
    DM.CONSULTA2.ExecSQL;
    DM.CONSULTA.Next;
  end;
end;
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #12  
Antiguo 07-09-2011
negrokau negrokau is offline
Miembro
NULL
 
Registrado: abr 2011
Posts: 210
Poder: 14
negrokau Va por buen camino
Talking

gracias capo, me funciono de maravilla defcon1_es, gracias gracias....
Responder Con Cita
  #13  
Antiguo 07-09-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Casimiro creo que Defcon1_es tiene una bola de cristal
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #14  
Antiguo 07-09-2011
negrokau negrokau is offline
Miembro
NULL
 
Registrado: abr 2011
Posts: 210
Poder: 14
negrokau Va por buen camino
Talking

:d:d:d:d:d:d:d:d
Responder Con Cita
  #15  
Antiguo 07-09-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por oscarac Ver Mensaje
Casimiro creo que Defcon1_es tiene una bola de cristal
¡¡¡Qué callado se lo tenía!!!
Responder Con Cita
  #16  
Antiguo 07-09-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¡¡¡Qué callado se lo tenía!!!
y asi como jugando ya llegue a 1k
vaya... el tiempo si que pasa
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #17  
Antiguo 07-09-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por oscarac Ver Mensaje
y asi como jugando ya llegue a 1k
vaya... el tiempo si que pasa

Jejeje... mira aquí.
Responder Con Cita
  #18  
Antiguo 07-09-2011
negrokau negrokau is offline
Miembro
NULL
 
Registrado: abr 2011
Posts: 210
Poder: 14
negrokau Va por buen camino
Talking

yo de vuelta, me anduvo una vez pero ahora me salta este error:
CANNOT PERFORM THIS OPERATION ON A CLOSED DATASET
ya le di muchas vueltas y no encuentro el problema
Responder Con Cita
  #19  
Antiguo 07-09-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
eso pasa cuando la base de datos o la tabla esta cerrada
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #20  
Antiguo 07-09-2011
negrokau negrokau is offline
Miembro
NULL
 
Registrado: abr 2011
Posts: 210
Poder: 14
negrokau Va por buen camino
Talking

aca mi salta el error
Imágenes Adjuntas
Tipo de Archivo: jpg error.jpg (28,2 KB, 12 visitas)
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 registros stand Conexión con bases de datos 2 29-07-2010 10:10:24
actualizar registros pabloloustau Conexión con bases de datos 3 19-06-2010 20:40:39
actualizar 100 registros al tiempo Camilo Varios 2 22-06-2007 19:08:29
Actualizar Registros drkvergil Firebird e Interbase 3 12-09-2006 18:33:54
Como actualizar toda una tabla con bastantes registros? IcebergDelphi Firebird e Interbase 4 16-12-2003 14:08:00


La franja horaria es GMT +2. Ahora son las 00:28:27.


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