Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-09-2006
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Talking Actualizar Stock

Hola amigos, tengo un pequeño problema.(pa variar ) necesito actualizar el Stock de la tabla productos, pero nunca he realizado eso....

la siguiente sentencia me actualiza el stock, pero lo que realmente me hace es cambiar el contenido por el nuevo valor, y lo que necesito es que se lo sume o le reste dicho valor (dependiendo del caso)

Código Delphi [-]
For i:=0 to Items_Paso.RowCount-1 Do
Begin
     IBQ_Stock.SQL.Clear;
     IBQ_Stock.SQL.Add('Update "Producto" Set "Pro_Stock"=:Var1');
     IBQ_Stock.SQL.Add('Where "Pro_Codigo"=:Var2');
     IBQ_Stock.Params[0].AsInteger := StrToInt(Items_Paso.Cells[1,i]);
     IBQ_Stock.Params[1].AsString  := Items_Paso.Cells[0,i];
     IBQ_Stock.ExecSQL;
End;

encontre esta sentencia y me funciona bien pero en el Editor de SQL y no se como traspasarla al Delphi

Código Delphi [-]
Update "Producto" Set "Pro_Stock"="Pro_Stock"+25
la idea es que el 25 se reemplace por el contenido de StrToInt(Items_Paso.Cells[1,i]);

tambien probé esto, pero no me funcionó (cambiando la asignación del parametro)
Código Delphi [-]
IBQ_Stock.Params[0].AsInteger := IBQ_Stock['Pro_Stock']+StrToInt(Items_Paso.Cells[1,i]);
__________________
BlueSteel

Última edición por BlueSteel fecha: 26-09-2006 a las 23:26:31.
Responder Con Cita
  #2  
Antiguo 26-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Supongo que asi:
Código Delphi [-]
IBQ_Stock.SQL.Add('Update "Producto" Set "Pro_Stock"'+25'');
Saludos
Responder Con Cita
  #3  
Antiguo 26-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
En Realidad no veo para que el uso de comillas dobles:
Código Delphi [-]
IBQ_Stock.SQL.Add('Update Producto Set Pro_Stock = Pro_Stock '+25'');
Saludos
Responder Con Cita
  #4  
Antiguo 27-09-2006
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Hola Caral...

se que la sentencia que me das funciona bien en el Editor de SQL.. . pero si la ingresas a un IBQuery de esa forma no funciona

ademas, eso de 25 era un ejemplo... ya que debo reemplazarlo por StrToInt(Items_Paso.Cells[1,i])

esperando me haya explicado bien...
__________________
BlueSteel
Responder Con Cita
  #5  
Antiguo 27-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola BlueSteel
Te respondo para poner este en primer lugar de la fila y ver si alguien mas ayuda en esto, pero me quedo corto talvez se me ocurra algo.
estare pendiente de esto haber que pasa.
Saludos
Responder Con Cita
  #6  
Antiguo 27-09-2006
aledieb aledieb is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires, Argentina
Posts: 141
Poder: 19
aledieb Va por buen camino
Proba con, no se si funcionará:

Código SQL [-]
Update Producto Set Pro_Stock=Pro_Stock+:valor

Código Delphi [-]
IBQ_Stock.Params[0].AsInteger:=StrToInt(Items_Paso.Cells[1,i]);

Otra opción seria utilizar una variable auxiliar asignarle el valor del campo y luego hacer el update:

Código SQL [-]
Update Producto Set Pro_Stock=:valor

Código Delphi [-]
variable_aux:=IBQ_Stock['Pro_Stock'];
IBQ_Stock.Params[0].AsInteger:=variable_aux+StrToInt(Items_Paso.Cells[1,i]);
__________________
Suerte
Alejandro
Responder Con Cita
  #7  
Antiguo 28-09-2006
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
ya me funciono...gracias

realice el siguiente codigo.. y funciona perfecto...tanto para sumar como para restar

Código Delphi [-]
For i:=0 to Items_Paso.RowCount-1 Do
Begin
     IBQ_Param.SQL.Clear;
     IBQ_Param.SQL.Add('Update "Producto" Set "Pro_Stock"="Pro_Stock"-'+Items_Paso.Cells[1,i]);
     IBQ_Param.SQL.Add('Where "Pro_Codigo"=:Var1');
     IBQ_Param.Params[0].AsString  := Items_Paso.Cells[0,i];
     IBQ_Param.ExecSQL;
End;

gracias a todos por su ayuda...
__________________
BlueSteel
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
Stock Limitante soloriv SQL 5 03-06-2006 20:59:50
Actualizar de Fb 1.0.2 a Fb 1.5 Sergio J. Firebird e Interbase 5 07-04-2006 12:03:59
stock general ELINK SQL 5 29-03-2005 17:58:00
Actualizar Inventarios cesar_picazo Conexión con bases de datos 0 04-10-2004 04:43:05
actualizar fabriciof Conexión con bases de datos 3 27-05-2004 14:58:56


La franja horaria es GMT +2. Ahora son las 17:29:47.


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