Club Delphi  
    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 Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-07-2008
alquimista alquimista is offline
Miembro
 
Registrado: ene 2008
Posts: 203
Poder: 17
alquimista Va por buen camino
Smile Obtener de una tabla el valor que mas se aproxime de otra tabla en un DBgrid

Muy buenas.

Tengo varias tablas. Una de ellas tiene horas en modo texto
12:23 y un valor asociado como real a esa hora 15.50
12:50 --- 16.00
13:20----16.40
13:56----17.34
14:40-----18.23
etc..
Son diferentes tiempos ordenados en forma creciente..

En otra tabla se introducirá un valor que sea igual o se aproxime al
valor de tiempo. por ejemplo utilizando un DBgrid y en una columna tener el valor
12:26 que busque en la primera tabla y rellene el valor mas cercano por arriba en este ejemplo seria 12:50--16.00. Y fuera 16.00 el valor rellenado automaticamente en otra columna del DBgrid.

Cita:
Col1(texto)____ Col2(Real)
12:26___________16.00 (tabla1:12:50-->16.00)
12:48___________16.00 (tabla1:12:50-->16.00)
13:25___________17.34 (tabla1:13:56-->17.34)
Responder Con Cita
  #2  
Antiguo 17-07-2008
JMG JMG is offline
Miembro
 
Registrado: may 2005
Posts: 10
Poder: 0
JMG Va por buen camino
¿Y cual es la pregunta?
Responder Con Cita
  #3  
Antiguo 17-07-2008
alquimista alquimista is offline
Miembro
 
Registrado: ene 2008
Posts: 203
Poder: 17
alquimista Va por buen camino
Wink

es verdad...

La falta de sueño hace estragos...

Bueno como se haría para que al introducir el dato en el dbgrid, de un tiempo que se aproxime al de la tabla 1 se rellene automaticamente el valor de cte a la que hace referencia.
¿Como se hace la comparación del tiempo 2 con el tiempo 1?

Perdón si no he sido muy claro.
Responder Con Cita
  #4  
Antiguo 22-07-2008
alquimista alquimista is offline
Miembro
 
Registrado: ene 2008
Posts: 203
Poder: 17
alquimista Va por buen camino
Ya está medio resuelto:

Por si sirve a alguien pongo el código:

Código Delphi [-]
procedure TForm1.BitBtn1Click(Sender: TObject);
var restr,cmpstr:string;
    valreal: double;
    salida:boolean;
begin

   restr:=Label.Caption;
   salida:=false;
   With DataModule10.ADOTable1 do
      try
      Open;
      First;
      While (not EOF) and (not salida) do
        Begin
           cmpstr:= FieldByName('Tabla1Col1').AsString;
           valreal:= FieldByName('Tabla2Col2').AsFloat;
          if cmpstr >=restr then
            begin
             salida:=true;
             with Datamodule10.ADOTabla2 do
                 begin
                  edit;
                  fieldbyname('Tabla2Col1').asstring:=restr;
                  fieldbyname('Tabla2Col2').asFloat:=valreal;
                 end;
            end;
          Next;
        End;
      Close;
    except
// excepción
      end;
    end;

end;

Esto vale porque los datos de tiempos de tabla 1 están ordenados de menor a mayor (cmpstr).

¿Existe alguna forma en el caso en que no estuvieran ordenados de mayor a menor de que al recorrer la tabla los ordene automáticamente?

¿Hay otra manera más rápida que la anterior?

A ver si hay alguien que me puede ayudar.
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
Mysql: copiar los campos de una tabla de una base de datos a otra tabla de otra base? patriram MySQL 4 02-11-2007 16:00:24
Recorrer Tabla, contar registro repetidos y escribir totales en otra Tabla Lucas_diaz1810 Conexión con bases de datos 1 25-12-2006 13:04:34
Dbgrid para insertar en una tabla pero cogiendo datos de otra tabla taru MySQL 1 27-07-2006 15:36:12
Obtener elementos de una tabla que no estan en otra Durbed SQL 4 29-12-2005 13:27:20
DBGrid con una columna de nombre de otra tabla gluglu Conexión con bases de datos 3 05-02-2005 13:59:13


La franja horaria es GMT +2. Ahora son las 22:32:49.


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