Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-08-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Poder: 15
martini002 Va por buen camino
BD con campos establecidos y dinamicos

Saludos donde quiera que se encuentren.

Amigos de la comunidad, en esta ocasion,
les traigo un problemita, que de verdad, no tengo ni la menor
idea, de como buscarlo o resolverlo, con su experiencia
creo que no seria dificil para ustedes, pero digamos que esta picante,
a ver, como ustedes resolverian esto? a ver si me explico bien que es hasta complicado,

Tenemos una base de datos dinamica, en la cual ingresamos datos,
y luego los borramos, porque sirve solo a modo visual y luego para crear otros registros,
pero ese no es el punto, la cuestion es que la BD se comporta de la siguiente manera,
Vamos agregando registros, N Cantidad, eso lo definimos nosotros mediante un control,
estamos bien hasta alli, pero ahora supongamos que en esos registros,
tenemos uno de Tipo Integer, "Precio".

La cuestion es, como definiriamos una ultima fila donde se almacene
la sumatoria de toda la columna de precios?
y que esta siempre quede de ultimo,
osea ella esta definida alli, sumando todos los elementos de arriba,
Pienso yo que podriamos ir agregando los registros,
ANTES, de esa ultima fila, eso es lo que me tiene cabezon.

Gracias por su tiempo y ayuda como siempre,
la tecnologia se transfiere pero la experiencia es intransferible
Responder Con Cita
  #2  
Antiguo 21-08-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Para que una fila para sumar otra?.
Me imagino que se nenesita el dato de la suma, no se necesita guardarlo.
Me parece que con sum() de sql sera suficiente.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 21-08-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Poder: 15
martini002 Va por buen camino
No, no, una ultima fila para sumar toda una columna.

Mira esta foto, asi es como me gustaria que estuviera



Gracias
Responder Con Cita
  #4  
Antiguo 21-08-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Eso es exel, no una tabla.
Las tablas no se manejan asi, si sumas todos los datos y guardas esa informacion en el ultimo campo la siguiente suma tomara ese dato.
Por eso digo que es cuestion de presentar el dato, no de guardarlo, para verlo asi usa un stringrid.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #5  
Antiguo 21-08-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Poder: 15
martini002 Va por buen camino
No Caral, no me he sabido explicar,
la cuestion es que valla sumando en tiempo de ejecucion a la columna Precio,
eso es excel, pero es una representacion mas o menos de lo que tengo en mente,

Mira consegui esto:
Código:
  Select Sum(campo)
  From TablaX
Dejame probarlo y te cuento
Responder Con Cita
  #6  
Antiguo 21-08-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Te as explicado bien.
Sum() lo que hara sera sumar los datos, pero no guardarlos.
Si sigues empeñado en guardar el dato deberias de crear otro campo para identificar si es suma o no y otro para la suma, no me parece logico no practico.
No lo vas a poder mostrar en un dbgrid de la forma que quieres.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 21-08-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Poder: 15
martini002 Va por buen camino
Mira lo resolvi, no como queria pero igual me funciona muy bien
inclusive mejor, hice esto mira:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
Var
  Suma:Integer;
begin
if StrToInt(Edit1.Text)>0 then
  ZQueryBD.Close;
  ZQueryBD.SQL.Clear;
  ZQueryBD.SQL.Text:= 'Insert Into Factura (Articulo, Precio) Select Articulo, Precio From Inventario Where Codigo = '+Edit1.Text;
  ZQueryBD.Open;
  ZQueryBD.Close;
  ZQueryBD.SQL.Clear;
  ZQueryBD.SQL.Text:= 'Select * From Factura';
  ZQueryBD.Open;
  ZQuery1.Close;
  ZQuery1.SQL.Clear;
  ZQuery1.SQL.Text:=  'Select Sum(Precio) as Suma From Factura';
  ZQuery1.Open;
  Edit3.Text:= ZQuery1.FieldByName('Suma').AsString+' BsF';
end;


Gracias
Responder Con Cita
  #8  
Antiguo 21-08-2012
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
No dices que motor de DB estás utilizando.

Por un lado, parece que estás utilizando la DB para almacenar datos temporales, cosa que no es recomendado. En su lugar utiliza un componente como TJvMemoryDataset. Ése componente es parte de la suite Jedi Delphi (Gratuitos).

Por último, si es necesario utilizar la Base de datos como almacenamiento temporal, te recomiendo que utilices la claúsula UNION de SQL para conseguir lo que quires.

Saludos.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #9  
Antiguo 21-08-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Poder: 15
martini002 Va por buen camino
Buen punto Chris,

Estoy usando Zeos como gestor,
y SQLite, estoy usando una tabla para almacenamiento temporal
de los datos de la facturacion, la cual se borra cada vez que valla a crearse otra
entonces en el momento que la factura esta lista, esta tabla vacia esos datos
en otra que es donde se guardaran los registros de facturas, en tablas individuales,
no creo que sea el mas optimo proceso, pero hasta ahora es el que me conozco.

Hermano no conozco mucho sobre esto realmente,
por ejemplo cuando hablas de TJvMemoryDataset realmente me capturas
fuera de la base, y cuando mencionas la claúsula UNION de SQL me haces el out :/

que me sugieres?
Gracias
Responder Con Cita
  #10  
Antiguo 21-08-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.670
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por martini002 Ver Mensaje
que me sugieres?
Evidentemente, un tutorial de lenguaje SQL y un libro de delphi y bases de datos.
Responder Con Cita
  #11  
Antiguo 21-08-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por martini002 Ver Mensaje
cuando mencionas la claúsula UNION de SQL me haces el out :/
Cuando tienes dos consultas SQL que devuelven el mismo número de columnas y del mismo tipo, puedes unir sus filas resultantes cono si fuera una sola consulta usando un clásula UNION. En tucaso, serí algo como

Código SQL [-]
select articulo, precio from articulos

union

select 'total', sum(precio) from articulos

// Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Campos Persistentes dinamicos oscarac SQL 2 27-07-2011 16:22:09
Campos Dinamicos - SQL Viet SQL 7 06-11-2006 12:23:59
Fastreport - Campos Dínamicos isg Impresión 0 16-10-2006 09:39:15
Arrays dinamicos Besto Varios 4 13-10-2006 15:24:01
Crear eventos en campos dinámicos altp OOP 9 02-01-2004 19:17:22


La franja horaria es GMT +2. Ahora son las 17:38:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi