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
  #41  
Antiguo 08-09-2011
negrokau negrokau is offline
Miembro
NULL
 
Registrado: abr 2011
Posts: 210
Poder: 14
negrokau Va por buen camino
Talking

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Vale, ¿y qué parámetros le pasas para probarlo?

:ParCOD_REMI = ??????
:ParCODIGO = ??????

¿Y qué registros tienes en la tabla?
:ParCOD_REMI = DM.Q_DET_REMISION.FieldValues['COD_REMI'];
:ParCODIGO = DM.Q_DET_REMISION.FieldValues['CODIGO'];

la tabla tiene estos registros
COD_REMI, CODIGO, PRECIO_UNIT, TOTAL, SERVICIO, CANTIDAD
Responder Con Cita
  #42  
Antiguo 08-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 negrokau Ver Mensaje
:ParCOD_REMI = DM.Q_DET_REMISION.FieldValues['COD_REMI'];
:ParCODIGO = DM.Q_DET_REMISION.FieldValues['CODIGO'];

la tabla tiene estos registros
COD_REMI, CODIGO, PRECIO_UNIT, TOTAL, SERVICIO, CANTIDAD
Negrokau
lo que mencionas no son registros.... se llaman campos

los registros son la Cantidad de lineas en las tablas

ejemplo
Cita:
Numero...Campo1, campo2, campo3
Reg1......a............1..........2
reg2.......b............1..........2
reg3.......c............1..........2
hay 4 campos y 3 registros en el ejemplo
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #43  
Antiguo 08-09-2011
[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
Hola negrokau...

Y ese query que indicas, ¿ya lo probaste en algún otro lado (IBExpert u otro programa por el estilo)? Digo, para que compruebes que en realidad te está devolviendo los datos deseados.


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #44  
Antiguo 08-09-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.107
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por negrokau Ver Mensaje
:ParCOD_REMI = DM.Q_DET_REMISION.FieldValues['COD_REMI'];
:ParCODIGO = DM.Q_DET_REMISION.FieldValues['CODIGO'];

la tabla tiene estos registros
COD_REMI, CODIGO, PRECIO_UNIT, TOTAL, SERVICIO, CANTIDAD
Vale, muy bonito

Pregunto por los valores que le pasas y los valores que tiene la tabla.

Ejemplo:

:ParCOD_REMI = 5
:ParCODIGO = 23

Y en la tabla están los siguientes registros:

Código:
COD_REMI, CODIGO, PRECIO_UNIT, TOTAL, SERVICIO, CANTIDAD
   1        1         112       22        xx      33
   2        4          34       16       yyy      64
   3        6          76       41        zz      28

Responder Con Cita
  #45  
Antiguo 08-09-2011
negrokau negrokau is offline
Miembro
NULL
 
Registrado: abr 2011
Posts: 210
Poder: 14
negrokau Va por buen camino
Talking

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Vale, muy bonito

Pregunto por los valores que le pasas y los valores que tiene la tabla.

Ejemplo:

:ParCOD_REMI = 5
:ParCODIGO = 23

Y en la tabla están los siguientes registros:

Código:
COD_REMI, CODIGO, PRECIO_UNIT, TOTAL, SERVICIO, CANTIDAD
   1        1         112       22        xx      33
   2        4          34       16       yyy      64
   3        6          76       41        zz      28

ah disculpen, entendi mal tienen estos registros:

:ParCOD_REMI = 1
:ParCODIGO = 1
Código SQL [-]
COD_REMI, CODIGO, PRECIO_UNIT, TOTAL,    SERVICIO,    CANTIDAD
   1        1         8000     16000   Mantenimiento     2
   2        1         8000      8000   Mantenimiento     1
   3        1         8000      8000   Manteniemitno     1
   1        2         4500      9000   Lineacion         1
   1        3        16800     16800   Balanceo          1
   1        4        18000     18000   Recarga Negro     1
Responder Con Cita
  #46  
Antiguo 08-09-2011
[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
Hola...

Según el valor de los parámetros y los registros que muestras, ese query solo debe devolver un registro.


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #47  
Antiguo 08-09-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.107
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues entonces está bien, sólo hay un registro con ambos campos a 1
Responder Con Cita
  #48  
Antiguo 08-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
mmmmm
cuando cod_remi = 1 entonce tiene 4 registros...
entonces si deberia funcionar el bucle while not eof
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #49  
Antiguo 08-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
me parece raro...
si tiene 4 registros entonces debe pasar 4 veces
estan bien asociados los datasource?
no sera que por ahi... tienes nu datasource en el grid que no es el correcto?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #50  
Antiguo 08-09-2011
negrokau negrokau is offline
Miembro
NULL
 
Registrado: abr 2011
Posts: 210
Poder: 14
negrokau Va por buen camino
Talking

:ParCOD_REMI = 1
:ParCODIGO = 1
esta es la 1ª linea y la 2ª es
:ParCOD_REMI = 1
:ParCODIGO = 2
Código SQL [-]
COD_REMI, CODIGO, PRECIO_UNIT,    TOTAL,    SERVICIO,    CANTIDAD
   1       1       8000         16000    Mantenimiento       2
   2       1       8000          8000    Mantenimiento       1
   3       1       8000          8000    Mantenimiento       1
   1       2       4500          9000    Lineacion           1 
   1       3      16800         16800    Balanceo            1 
   1       4      18000         18000    Recarga Negro       1
la 3ª
:ParCOD_REMI = 1
:ParCODIGO = 3

Código SQL [-]
COD_REMI, CODIGO, PRECIO_UNIT,    TOTAL,    SERVICIO,    CANTIDAD
   1       1       8000         16000    Mantenimiento       2
   2       1       8000          8000    Mantenimiento       1
   3       1       8000          8000    Mantenimiento       1
   1       2       4500          9000    Lineacion           1 
   1       3      16800         16800    Balanceo            1 
   1       4      18000         18000    Recarga Negro       1

y la 4ª
:ParCOD_REMI = 1
:ParCODIGO = 4

Código SQL [-]
COD_REMI, CODIGO, PRECIO_UNIT,    TOTAL,    SERVICIO,    CANTIDAD
   1       1       8000         16000    Mantenimiento       2
   2       1       8000          8000    Mantenimiento       1
   3       1       8000          8000    Mantenimiento       1
   1       2       4500          9000    Lineacion           1 
   1       3      16800         16800    Balanceo            1 
   1       4      18000         18000    Recarga Negro       1

necesito que vaya recorriendo con el bucle todos estos registros para que me actualize en la otra tabla de stock, donde tengo que modificar para que me haga esto?

Última edición por negrokau fecha: 08-09-2011 a las 18:42:52.
Responder Con Cita
  #51  
Antiguo 08-09-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.107
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por oscarac Ver Mensaje
mmmmm
cuando cod_remi = 1 entonce tiene 4 registros...
entonces si deberia funcionar el bucle while not eof
Cita:
Empezado por oscarac Ver Mensaje
me parece raro...
si tiene 4 registros entonces debe pasar 4 veces
estan bien asociados los datasource?
no sera que por ahi... tienes nu datasource en el grid que no es el correcto?
Si te das cuenta, el sql tiene un 'and'
Responder Con Cita
  #52  
Antiguo 08-09-2011
[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
Hola...

oscarac, creo que andas confundido. Si a esta consulta:

Código SQL [-]
select CANTIDAD from DETALLE_REMISION WHERE (COD_REMI=:ParCOD_REMI) AND (CODIGO = :ParCODIGO)

le mandas como valores a los parámetros 1 y 1 y tienes estos registros:

Código:
COD_REMI, CODIGO, PRECIO_UNIT, TOTAL,    SERVICIO,    CANTIDAD
   1        1         8000     16000   Mantenimiento     2
   2        1         8000      8000   Mantenimiento     1
   3        1         8000      8000   Manteniemitno     1
   1        2         4500      9000   Lineacion         1
   1        3        16800     16800   Balanceo          1
   1        4        18000     18000   Recarga Negro     1
entonces el resultado solo será un registro...


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #53  
Antiguo 08-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
por la sangre de cristo
alguien puede editar el post Nº 50 para entenderlo mejor?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #54  
Antiguo 08-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 maeyanes Ver Mensaje
Hola...

oscarac, creo que andas confundido. Si a esta consulta:


Código SQL [-]
select CANTIDAD from DETALLE_REMISION WHERE (COD_REMI=:ParCOD_REMI) AND (CODIGO = :ParCODIGO)





le mandas como valores a los parámetros 1 y 1 y tienes estos registros:

Código:
COD_REMI, CODIGO, PRECIO_UNIT, TOTAL,    SERVICIO,    CANTIDAD
   1        1         8000     16000   Mantenimiento     2
   2        1         8000      8000   Mantenimiento     1
   3        1         8000      8000   Manteniemitno     1
   1        2         4500      9000   Lineacion         1
   1        3        16800     16800   Balanceo          1
   1        4        18000     18000   Recarga Negro     1
entonces el resultado solo será un registro...


Saludos...

Tienes razon... no me habia percatado del AND.. pero negrokau insiste en que a el le aparecen mas de 1 registro

esto se esta volviendo estresante
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #55  
Antiguo 08-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
negrokau

segun los datos que proporcionas.. y la consulta que haces.... te debe salir 1 registro

Cita:
COD_REMI, CODIGO, PRECIO_UNIT, TOTAL, SERVICIO, CANTIDAD
1 1 8000 16000 Mantenimiento 2
2 1 8000 8000 Mantenimiento 1
3 1 8000 8000 Manteniemitno 1
1 2 4500 9000 Lineacion 1
1 3 16800 16800 Balanceo 1
1 4 18000 18000 Recarga Negro 1
Cita:
1-1
1-2
1-3
1-4
comprendes?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #56  
Antiguo 08-09-2011
negrokau negrokau is offline
Miembro
NULL
 
Registrado: abr 2011
Posts: 210
Poder: 14
negrokau Va por buen camino
Talking

Cita:
Empezado por defcon1_es Ver Mensaje
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;
yo segui este ejemplo, y como les vengo diciendo solo me actualiza el 1º registro, y como dice oscarac:

cuando cod_remi = 1 entonce tiene 4 registros...
entonces si deberia funcionar el bucle while not eof

me parece raro...
si tiene 4 registros entonces debe pasar 4 veces
estan bien a
sociados los datasource?
no sera que por ahi... tienes nu datasource en el grid que no es el correcto?



cod_remi =1 tiene 4 registro, quiero que me actualize esos 4 registros, ya se que muestra solo 1 registro como esta mas arriba, como puedo hacer que me actualize los 4 registro si es que esta mal lo que estoy haciendo?
Responder Con Cita
  #57  
Antiguo 08-09-2011
negrokau negrokau is offline
Miembro
NULL
 
Registrado: abr 2011
Posts: 210
Poder: 14
negrokau Va por buen camino
Talking

Cita:
Empezado por defcon1_es Ver Mensaje
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;
yo segui este ejemplo, y como les vengo diciendo solo me actualiza el 1º registro, y como dice oscarac:

cuando cod_remi = 1 entonce tiene 4 registros...
entonces si deberia funcionar el bucle while not eof

me parece raro...
si tiene 4 registros entonces debe pasar 4 veces
estan bien a
sociados los datasource?
no sera que por ahi... tienes nu datasource en el grid que no es el correcto?



cod_remi =1 tiene 4 registro, quiero que me actualize esos 4 registros,
ya se que muestra solo 1 registro como esta mas arriba, como puedo hacer
que me actualize los 4 registro si es que esta mal lo que estoy haciendo?

Última edición por negrokau fecha: 08-09-2011 a las 22:00:05.
Responder Con Cita
  #58  
Antiguo 08-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
lo que estas haciendo mal radica en tu primera consulta
Código Delphi [-]
SELECT CANTIDAD FROM DETALLE_FACTURAS WHERE (COD_FACT=:ParCOD_FACT) AND (CODIGO = :ParCODIGO)
aqui estas "capturando" la factura 1 con codigo 1
si nos fijamos en la tabla de datos que colocaste solo 1 registro cumple con la condicion el primero
los demas la cumplen solo cuando cod_fact = '1' y quitale el parametro CODIGO
__________________
Dulce Regalo que Satanas manda para mi.....

Última edición por oscarac fecha: 08-09-2011 a las 22:10:11.
Responder Con Cita
  #59  
Antiguo 08-09-2011
negrokau negrokau is offline
Miembro
NULL
 
Registrado: abr 2011
Posts: 210
Poder: 14
negrokau Va por buen camino
Talking

Cita:
Empezado por oscarac Ver Mensaje
lo que estas haciendo mal radica en tu primera consulta
Código Delphi [-]
SELECT CANTIDAD FROM DETALLE_FACTURAS WHERE (COD_FACT=:ParCOD_FACT) AND (CODIGO = :ParCODIGO)

aqui estas "capturando" la factura 1 con codigo 1
si nos fijamos en la tabla de datos que colocaste solo 1 registro cumple con la condicion el primero
los demas la cumplen solo cuando cod_fact = '1'
entiendo,y como soluciono para que "capture" la factura 1 con los demas codigos 2,3,4?
xq laidea es que recorra los 4 registros que tiene la factura 1
Responder Con Cita
  #60  
Antiguo 08-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 negrokau Ver Mensaje
entiendo,y como soluciono para que "capture" la factura 1 con los demas codigos 2,3,4?
xq laidea es que recorra los 4 registros que tiene la factura 1
negrokau
me parece que te estas volviendo automata.....
piensa un poquito...
en tu consulta estas jalando la FACTURA 1 y el CODIGO 1....
si queremos que solo jale la FACTURA 1... debemos........
piensa... piensa...
__________________
Dulce Regalo que Satanas manda para mi.....
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 02:52:26.


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