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 03-02-2011
Nacho5 Nacho5 is offline
Registrado
NULL
 
Registrado: feb 2011
Posts: 6
Poder: 0
Nacho5 Va por buen camino
Grabar un campo calculado en una tabla

¡ Antes que nada, quiero agradecer la ayuda que me puedan ofrecer dado que estoy muy perdido con este asunto !

Soy novato en esto del manejo del delphi y me gustaría saber. ¿ Teniendo una simpla tabla con 3 campos tipo currency en donde, los 2 primeros son los nº que se solicitan, y el tercer campo, es el que almacena la suma de los otros dos ?. ¿ Me podrían indicar las formas posibles de hacerlo ?. ¿Se puede hacer sin campo calculado ?¿ Y con un campo calculado, como añadiríamos a la tabla con campo suma el resultado de dicha operación calculada ?.

Muchas gracias.
Responder Con Cita
  #2  
Antiguo 03-02-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Hola Nacho5 te damos la bienvenida y como eres nuevo te recomendamos en primer lugar leer nuestra guía de estilo para conocer ciertas reglas del foro.
Sobre tu pregunta te puedo decir que personalmente creo que te es más que suficiente tener solo dos campos a tu tabla, ya que el tercero se lo puede optener a partir de ellos con una consulta similar a ésta:
Código SQL [-]
Select Campo1,Campo2, (Campo1+Campo2) as Campo_Calculado from MyTabla;
De esa manera puedes mostrar al usuario el tercer campo que en éste caso es calculado, por lo cual no es necesario tener ni guardar un tercer campo en tu tabla
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 04-02-2011
Nacho5 Nacho5 is offline
Registrado
NULL
 
Registrado: feb 2011
Posts: 6
Poder: 0
Nacho5 Va por buen camino
Grabar un campo calculado.

¡ Muchísimas gracias por tratar de ayudarme rgstuamigo !. Tras volver nuevamente a leer mi mensaje veo que no he sido muy claro. Disculpas por este error. Me explicaré otra vez :

Poseo una tabla llamada Suma.db, en la cual tengo 3 campos : los dos primeros( Num1 y Num2 ) deben ser introducidos por la persona, y el tercero( resultado ), debe de guardar en la tabla la información que los dos anteriores produzcan al realizarse una operación matemática del tipo suma... Quisiera saber cómo se hace a través de un campo calculado( campo con nombre calculado ), o sea, cómo asigno el valor calculado a mi tercer campo( todos son de tipo currency ) en la tabla suma. Necesito poder guardar el dato calculado en la tabla suma.db, dado que no será para uso de una consulta simple en un instante determinado, sino que se aprovechará en un futuro para encontrar un determinado registro que contenga a sus vez otros datos. He utilizado este simil... de "la suma" porque creo que es el que más se parece a lo que busco sin tener que explicar el desarrollo de la aplicación para la que estoy trabajando. No obstante, les indico de que se trata de hacer una B.D con todos los gastos pormenorizados mes a mes que provienen de distintos lugares... y cómo dichos gastos suman un monto total que debe ser guardado tras haber echo los cálculos oportunos sumas, etc...

Muchas gracias encarecidamente... !!! Hasta pronto !!!
Responder Con Cita
  #4  
Antiguo 04-02-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Lightbulb

Ok...ya voy entendiendo la cosa...pero antes de poder darte alguna sugerencia me gustaría que nos comentaras(mejor si pones código) de qué manera estas insertando hasta el momento los registros a tu tabla? ¿que componentes estas usando?,etc...
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #5  
Antiguo 04-02-2011
Nacho5 Nacho5 is offline
Registrado
NULL
 
Registrado: feb 2011
Posts: 6
Poder: 0
Nacho5 Va por buen camino
Smile Grabar un campo calculado.

¡ Hola de nuevo !

Código lo que se dice código, no hay mucho. Dado que no tengo mucha base para ello. El que hay es el que implementa Delphi a la hora de diseñar la aplicación. Pero para que veas lo que tengo sería esto :
_________________________________________________________________
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, StdCtrls, Mask, DBCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Table1: TTable;
    DataSource1: TDataSource;
    Table1Num1: TCurrencyField;
    Table1Num2: TCurrencyField;
    Table1Suma: TCurrencyField;
    Table1calculado: TCurrencyField;
    Label1: TLabel;
    DBEdit1: TDBEdit;
    Label2: TLabel;
    DBEdit2: TDBEdit;
    Label4: TLabel;
    DBEdit4: TDBEdit;
    DBNavigator1: TDBNavigator;
    procedure Table1CalcFields(DataSet: TDataSet);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation


{$R *.dfm}

procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin
       DataSet['calculado']:= DataSet['Num1']+DataSet['Num2'];
end;

_________________________________________________________________
En la tabla( que denominé Suma.db tiene a su vez un campo Suma ) que debe registrar el valor del campo calculado( llamado calculado ). No sé como hacerlo por más que he intentado de una y otra forma. He leído cosas en este foro que me ha llevado a saber plantear un campo calculado viendo lo del :
Código Delphi [-]
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin
       DataSet['calculado']:= DataSet['Num1']+DataSet['Num2'];
end;
pero no sé continuar... ni he visto por ahora algo que me ayude a seguir un paso más. Muchas gracias nuevamente, por vuestro interés!!!.

Última edición por ecfisa fecha: 12-02-2011 a las 00:15:02. Razón: ETIQUETAS DELPHI
Responder Con Cita
  #6  
Antiguo 08-02-2011
Nacho5 Nacho5 is offline
Registrado
NULL
 
Registrado: feb 2011
Posts: 6
Poder: 0
Nacho5 Va por buen camino
Grabar un campo calculado.

¿ Hay alguien que me pueda echar un capote con esta mi duda universal ?. Muchas gracias.
Responder Con Cita
  #7  
Antiguo 08-02-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Bueno... personalmente como te comenté anteriormente no me parece muy práctico que guardes el campo calculado en tu Base de datos ya que como bien dice el término es un campo "calculaaado", osea se lo puede calcular y básicamente solo sirve para mostrar al usuario datos en pantalla, por tal motivo no le veo muy útil guardarlo.
Un ejemplo práctico que te puedo dar de todo ésto, por decir un tabla "Empleado" que tengas por ejemplo los siguientes campos o columnas:
Cita:
Tabla Empleado
ID,Nombre,Fecha_Nacimiento,Edad,etc...
Si analizamos un poco los campos de la tabla "Empleado" nos vamos a dar cuenta que exiten campos que están por demás y hay información redundante,¿Qué campo es? dirán uds. pues la respuesta es el campo "Edad", ¿pero porqué el campo "Edad" es redundante?...pues por que tranquilamente se puede obtener la edad de un empleado atraves de su fecha de nacimiento , en otras palabras ya tenemos o podemos obtener ese dado, por tanto concluimos que no es necesario tener un campo edad..
Entonces ahora la pregunta es: ¿Es necesario guardar un dato cuando lo puedo obtener de otra parte?
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #8  
Antiguo 11-02-2011
Nacho5 Nacho5 is offline
Registrado
NULL
 
Registrado: feb 2011
Posts: 6
Poder: 0
Nacho5 Va por buen camino
Grabar un campo calculado.

Disculpa la tardanza en darte nuevamente las gracias. Pero la verdad es que no he podido conectarme antes. La razón de querer guardar el dato calculado no es otra que la de pensar que el cálculo se haga en una sola ocasión, y así poder ahorrar tiempos de recalculo de todos los registros de la base de datos cada vez que se plantee una consulta posterior en donde se conozca ese dato absoluto que sería el campo suma, por ejemplo. ¡ Muchas gracias por toda tu ayuda !.
Responder Con Cita
  #9  
Antiguo 12-02-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Nacho5.

Lo que te está sugiriendo rgstuamigo es la opción correcta.

Si tu preocupación es la velocidad, quedate tranquilo, el tiempo de cálculo es despreciable. Requiere muchísimo más tiempo traer un dato de la tabla a memoria por ejemplo. Por otro lado usando un campo calculado, tenés la ventaja que no tenés datos redundantes en la tabla.

De todos modos si todavía queres guardarlo como campo; podrías hacer desde Delphi el calculo y la asignación en algún evento, o mediante un trigger desde la base de datos.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #10  
Antiguo 12-02-2011
Nacho5 Nacho5 is offline
Registrado
NULL
 
Registrado: feb 2011
Posts: 6
Poder: 0
Nacho5 Va por buen camino
Grabar un campo calculado.

Muchas gracias también a tí ecfisa. Al final, he seguido los cosejos de rgstuamigo. Y estoy empezando a montar la aplicación. Tardaré un poco... bastante... pero con vuestras ayudas el camino será más fácil. Gracias.
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
Campo Calculado!!! Ledian_Fdez OOP 1 03-10-2007 22:10:01
Crear Vista a tabla con campo calculado amadis SQL 3 18-09-2007 22:22:24
Pasar un campo calculado a un campo del mismo DbGrid maravert Conexión con bases de datos 3 12-05-2006 00:31:30
Campo de bd calculado davidgaldo MS SQL Server 3 20-05-2005 15:50:22
filtrar tabla por campo calculado aram2r Conexión con bases de datos 0 17-03-2005 18:53:59


La franja horaria es GMT +2. Ahora son las 13:35:14.


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