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 21-08-2017
Avatar de Edwardfeliz
Edwardfeliz Edwardfeliz is offline
Miembro
 
Registrado: abr 2014
Posts: 102
Poder: 11
Edwardfeliz Va por buen camino
Exclamation Actualizar un Registro Por SQL con varios parametros

Saludos, y gracias por su atención.

Tengo una tabla "Cuotas" (Uso access), a la cual le quiero hacer un UPDATE por sql con un ADOQuery,
Quiero actualizar tres campos,
1- 'Fecha_Pago' que inicialmente esta vacío, "con la fecha actual"
2- 'Estado' con "realizado"
3- 'Mora' Con un valor numérico que esta en un edit, llamemoslo edit1

para encontrar el registro tomara en cuenta tres cosas, el campo 'NumPrestamo' que agrupa todos los registros relacionados a un préstamo, luego el campo 'Estado' que contiene el texto "Pendiente o Realizado" lo que quiere que solo tome en cuenta los registros que tengan "Pendiente" y por ultimo, 'Numero' que tiene el numero de la cuota, la cuestión es que quiero que seleccione el registro que tenga en este campo "Numero" el valor mas bajo, la idea es ir cambiando el registro en el orden ascendente cuando realizo cada UPDATE.

Por toda la explicación que he dado ya saben de que trata el programa, y se que la gran mayoria ha hecho esto o algo parecido.
soy otro novato buscando ayuda
Espero sus respuestas, Gracias.
Responder Con Cita
  #2  
Antiguo 21-08-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Tú mismo has descrito perfectamente la sentencia sql que hay que escribir, ya solamente te falta mirar cualquier tutorial sql
Y de esa manera dejarás de ser novato, porque si te la escribimos, entonces tú la copiarás y pegarás... y seguirás siendo novato toda la vida
Y pregunta aquí mismo si tienes alguna duda.
Responder Con Cita
  #3  
Antiguo 21-08-2017
Avatar de Edwardfeliz
Edwardfeliz Edwardfeliz is offline
Miembro
 
Registrado: abr 2014
Posts: 102
Poder: 11
Edwardfeliz Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Tú mismo has descrito perfectamente la sentencia sql que hay que escribir, ya solamente te falta mirar cualquier tutorial sql
Y de esa manera dejarás de ser novato, porque si te la escribimos, entonces tú la copiarás y pegarás... y seguirás siendo novato toda la vida
Y pregunta aquí mismo si tienes alguna duda.
No concuerdo con usted señor Casimiro , No soy esa clase de novato, Cada ves que pido ayuda aqui es porque no tengo ni idea de como resolverlo, y cuando se me ayuda copio el codigo en un txt y lo guardo, y los reciclo, ya lo intente, y no lo resolvi, lo volvere a escribir el codigo para subirlo aqui y ver si voy por el camino correcto. Y recuerda que para quien sabe la respuesta la solucion es muy simple.

Saludos
Responder Con Cita
  #4  
Antiguo 21-08-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bien, pon tu código que lo vayamos viendo y ayudando.
Responder Con Cita
  #5  
Antiguo 22-08-2017
Avatar de Edwardfeliz
Edwardfeliz Edwardfeliz is offline
Miembro
 
Registrado: abr 2014
Posts: 102
Poder: 11
Edwardfeliz Va por buen camino
Código Delphi [-]
Begin
 with QTemp do
    begin
    Close;
    SQL.Clear;
    SQL.Text:= 'UPDATE Cuotas SET Fecha_Pago = :Fecha, Estado = :Estado, Mora = :Mora  '+
               'Where (NumPrestamo =:Codigo) and (Numero =:Numero)';
    Parameters.ParamByName('Fecha').Value  := FormatDateTime('dd/mm/yyyy', Now);
    Parameters.ParamByName('Estado').Value := 'Realizado';
    Parameters.ParamByName('Mora').Value   := Edit1.Text;
    Parameters.ParamByName('Codigo').Value := EnumPrestamo.Text;
    Parameters.ParamByName('Numero').Value := ????
    ExecSQL;
    end;
 End;

Esto es lo que tengo hasta ahora, esta incompleto, como lo termino?
Responder Con Cita
  #6  
Antiguo 22-08-2017
Avatar de mallenat
mallenat mallenat is offline
Miembro
 
Registrado: oct 2003
Posts: 18
Poder: 0
mallenat Va por buen camino
Yo lo resolvería por SQL, con una subselect. El valor de número vendria de:
Código SQL [-]
SELECT Min(Numero)
FROM Cuotas
WHERE NumPrestamo = :Codigo
*Sin conocer tu esquema de base de datos puede que en el where falte alguna condición. La idea es conseguir el mínimo número que te interese en esta select.

Si tu motor de base de datos admite subselects en un update lo puedes juntar:
Código SQL [-]
UPDATE Cuotas SET Fecha_Pago = :Fecha, Estado = :Estado, Mora = :Mora  
Where (NumPrestamo =:Codigo) and (Numero = (
    SELECT Min(Numero)
    FROM Cuotas
    WHERE NumPrestamo = :Codigo
))
En caso contrario deberías averiguar primero el mínimo y luego llamar a tu query.
__________________
Mallenat
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
¿Una función en Delphi, puede devolver varios parámetros? socger Varios 6 27-02-2009 18:00:07
¿Actualizar varios registros a la vez? Ayuda... por favor georkis PHP 2 29-04-2008 22:56:38
Actualizar Vista de Tabla en varios ordenadores juanma65 Conexión con bases de datos 2 14-07-2006 10:26:48
actualizar aplicacion cliente en varios puesto VRO Providers 0 25-10-2005 18:00:49
Problemas con varios Parametros Carlex SQL 7 13-08-2004 23:34:34


La franja horaria es GMT +2. Ahora son las 06:50:10.


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