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 08-10-2008
Esteban Quito Esteban Quito is offline
Miembro
 
Registrado: feb 2008
Posts: 21
Poder: 0
Esteban Quito Va por buen camino
Guardar datos con un Select anidado

Hola gente.
Perdon si lo que pregunte en esta oportunidad ya lo preguntó alguien más. Es que busqué y no encontré.

Mi problema es el siguiente. Tengo una tabla que almacena préstamos y otra que almacena los pagos de dichos préstamos relacionados con un campo dentro de pagos que indica a que prestamo pertenece.

El código Sql original con el que manipulaba la tabla Prestamos era el siguiente
Código SQL [-]
Select *
From Prestamos
Order by Fecha
Con esto andaba barbaro. No tiene secretos. Ahora, cuando le anidé un Select para que por cada préstamo aparezca como un campo más la sumatoria de todos los pagos, se me complicó el ABM. Es decir no puedo modificar más esa tabla (Prestamos). La tabla Pagos se modifica de otro lado.

El código Sql con el que intento hacer lo que les describo es elsiguiente
Código SQL [-]
Select Prestamos.*,
       (Select Sum(Pagos.Monto)
        From Pagos
        Where Pagos.Prestamo=Prestamo.Numero) as PagoTotal
From Prestamos
Order by Prestamo.Fecha

El control que uso es un SQLDataSet del dbExpres, un DataSetProvider y un ClientDataSet en delphi 7 en FireBird 1.5

No se si lo que yo pretendo tiene solucion. Si me faltaron datos para explicarme mejor, por favor me lo hacen saber.

Desde ya, muchas gracias
Responder Con Cita
  #2  
Antiguo 08-10-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Puedes usar un Query (para seleccionar) y un UpdateSql ligado a él para modificar/insertar/borrar.

También con SP se puede, pero no los he usado.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 08-10-2008
Esteban Quito Esteban Quito is offline
Miembro
 
Registrado: feb 2008
Posts: 21
Poder: 0
Esteban Quito Va por buen camino
Muchas gracias Lepe. Ese mecanismo que me propones lo uso en Paradox con los controles BDE.
De todos modos lo acabo de solucionar poniendo el nombre de la tabla en el evento onGetTableName del DataSetProvider
Código:
procedure TFormContratos.ProviderPrestamosGetTableName(Sender: TObject;
  DataSet: TDataSet; var TableName: String);
begin
  TableName:='Prestamos';
end;
Gracias igualmente. Un abrazo para todos.
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
Curiosidad While anidado con ADO lpedrazzi Conexión con bases de datos 0 30-11-2007 15:04:54
Guardar en 1 base de datos SQL, datos procedentes de 2 tablas distintas adaypr C++ Builder 1 05-09-2006 11:56:33
Select anidado erika.martinez SQL 2 02-02-2006 12:19:57
Select anidado: Select from (select....) Malon SQL 2 14-10-2004 14:01:24
Select anidado ( Select from select ) Malon Firebird e Interbase 1 05-10-2004 04:14:38


La franja horaria es GMT +2. Ahora son las 03:40:09.


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