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 15-11-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 19
Petolansa Va por buen camino
Ayuda con sql para descontar articulo.

Buenas gente, los molesto de nuevo...esta vez para pedirle un a ayudita en un cofigo sql, de a poco empeze a usar querys y realemnte que le voy agarrando la mano, mas o menos.
Ya habia consultado en otro hilo hace tiempo pero no pude llegar a una solucion, revise todos los hios que hablan de descontar stock, pero no llegue a adaptarlo porque siempre me falta algo.

Tengo una tabla rxmemory llamada md temporal, tiene los campos cantidad y codigo, ambos de tipo float intente hacer esto, al compilar no me da error, pero no me hace nada directamente.

Código:
while not frmfactura.MDtemporal.Eof do
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.Text:='update stock set prostkact=prostkact     -'+quotedstr(frmfactura.DBGrid1.DataSource.DataSet.fieldbyname('cantidad').AsString)+
'where'+'procod='+quotedstr(frmfactura.DBGrid1.DataSource.DataSet.fieldbyname('codigo').AsString);
query1.ExecSQL;
end;
Luego intente por el ladod e recorrer el dbgrid, pero tampoco.

en el dbgri las el indice de las columnas con 0-cantidad y 1-codigo


Código:
for i:=0 to frmfactura.DBGrid1.FieldCount-1 do
begin
query1.SQL.Text:='Update stock set prostkact=prostkact-'+frmfactura.DBGrid1.Fields[0,i]
+'where'+'procod='+quotedstr(frmfactura.DBGrid1.Fields[1,i]);
query1.ExecSQL;
end;
end;
Cual seria la forma correcta para poder actualizar la tabla "stock". los campos "prostkact" es la cantidad actual a la cual le quiero restar el campo de mi tabla "mdtemporal" cantidad que es la que tengo asociada en el dbgrid, con el indice 0.
Donde el "procod" que seria el codigo de producto que tendria que ser igual que el campo mdtemporal con el que tiene el nombre "codigo", ascociado al dbgrid con el indice 1.
POr ahi lei que conviene recorrer la tabla..

Agradezco de antema su ayuda

Saludos
Responder Con Cita
  #2  
Antiguo 15-11-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Esto es solo para tratar de entenderlo mejor
Código Delphi [-]
while not frmfactura.MDtemporal.Eof do
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.Text:='update stock set prostkact=prostkact     -'+quotedstr(frmfactura.DBGrid1.DataSource.DataSet.fieldbyname('cantidad').AsString)+
'where'+'procod='+quotedstr(frmfactura.DBGrid1.DataSource.DataSet.fieldbyname('codigo').AsString);
query1.ExecSQL;
end;

Código Delphi [-]
for i:=0 to frmfactura.DBGrid1.FieldCount-1 do
begin
query1.SQL.Text:='Update stock set prostkact=prostkact-'+frmfactura.DBGrid1.Fields[0,i]
+'where'+'procod='+quotedstr(frmfactura.DBGrid1.Fields[1,i]);
query1.ExecSQL;
end;
end;
por favor usa las etiquetas
Saludos
Responder Con Cita
  #3  
Antiguo 15-11-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 19
Petolansa Va por buen camino
Si me equivoque de etiquetas y si me quedo mal, disculpas
Responder Con Cita
  #4  
Antiguo 15-11-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
vamos a ver si entiendo.
Lo que quieres hacer es una resta del campo prostkact menos cantidad que esta el la tabla temporal.
Veamos asi, para mi es un asunto de concatenado:

Código Delphi [-]
while not frmfactura.MDtemporal.Eof do
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.Text:='update stock set prostkact= prostkact' - +quotedstr(frmfactura.DBGrid1.DataSource.DataSet.fieldbyname('cantidad').AsString)+
'where procod= '+quotedstr(frmfactura.DBGrid1.DataSource.DataSet.fieldbyname('codigo').AsString);
query1.ExecSQL;
end;
bueno, no estoy muy conforme con esto, tendrias que revisarlo, tengo dudas con el menos.
Saludos
Responder Con Cita
  #5  
Antiguo 15-11-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 19
Petolansa Va por buen camino
Si Caral tenes razon en mi pc lo tengo con una coma antes del quotedstr despues del menos , lo que quisiera saber si esa es la forma de trabajar con sql, cuando compilo no me da error, simplemente no funciona.
Esta bien traajado o no se hace asi, conviene acceder a la tabla o trabajar con lsoc ampos del dbgrid?

Garcias
Responder Con Cita
  #6  
Antiguo 15-11-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Me harias un favor?
Me podrias explicar campo por campo de que se trata?

Me parece que prostkact pertenece a la tabla stock y que es el campo que quieres actualizar con el dato obtenido de cantidad que esta en la tabla MDtemporal y que sera de acuerdo al campo codigo, que tambien estas en temporal, supongo?

me gustaria si me lo puedes explicar un poco mas a ver si lo logro entender, recuerda que soy novato.
Saludos
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
Articulo similar al de Paradox en red, pero para Access Wonni Conexión con bases de datos 0 17-05-2007 14:51:03
Codificar para el cambio: Mi primer articulo en BDN!!! mamcx Noticias 11 22-09-2006 01:37:20
Articulo -> Ventas - Borrar Articulo hmoner Conexión con bases de datos 7 14-10-2005 18:24:54
Artículo de Paradox en red Mariana Conexión con bases de datos 4 22-12-2004 04:23:27
Duda para crear índice de artículo Tio Firebird e Interbase 2 10-06-2003 01:00:14


La franja horaria es GMT +2. Ahora son las 12:47:30.


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