Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   dimensionar matriz en interbase (https://www.clubdelphi.com/foros/showthread.php?t=79244)

ginesgomezlopez 18-06-2012 23:28:28

dimensionar matriz en interbase
 
Hola, necesitaría cómo podría plantear un pequeño problemilla, tengo que partir digamos una matriz que abarque todos los días del año, en cada día debe de haber un número que corresponde a los días que necesito, así por ejemplo una lechuga desde que se siembra hasta que se hace tarda 90 días si es el 05 de Enero, pero tardaría 20 días si es el 60 de Junio cuando se siembra, así partiendo de esto, yo al introducir la fecha de siembra de la lechuga, él automáticamente me buscara ese día y ese mes y cogiera los días que se necesitaría para hacerse la lechuga una cosa así:

MES / DÍA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

ENERO 90 90 90 90 89 89 89 88 88 87 88 87 87 87 86 86 85 85 85 84 83 82 81 80 80 80 80 80 79 78 77
.
.
.
AGOSTO 65 65 65 65 64 64 64 64 63 63 63 62 62 62 62 60 60 60 60 60 60 60 59 58 58 58 58 58 58 58 58


Yo trabajo con Interbase 2009 y delphi 2010, querría ver si es posible hacerlo en una matriz, o bien es mejor hacerlo una tabla para cada mes, y que la tabla contenga los 31 campos cada campo que corresponda a un día, preferiría dimensionar una matriz pero no sé si es posible y cómo en interbase para que se queden grabados los datos.

Muchas Gracias,

RONPABLO 19-06-2012 22:07:43

Podría ser una tabla que tenga tres campos smallInt (Mes, Dia, Tiempo)


Cita:

Tabala

Mes Dia Tiempo
1 1 89
1 2 89
1 3 89
..
..
..
1 29 89
1 30 89
1 31 90

Luego solo sería hacer consultas tales como
Código SQL [-]
Select Tiempo From Tabla where Dia = :dia and Mes = :Mes



Y luego en delphi podría hacer algo como esto:
Código Delphi [-]
Function fRetornarTiempo(Dia, Mes : Integer) : Integer; 
begin
    QConsultarTiempoXDiaYMes.close;
    QConsultarTiempoXDiaYMes.ParamByName('Dia').asIntiger := Dia;
    QConsultarTiempoXDiaYMes.ParamByName('Mes').asIntiger := Mes;
    QConsultarTiempoXDiaYMes.Open;
    if QConsultarTiempoXDiaYMes.RecordCount > 0 then
       Result := QConsultarTiempoXDiaYMes.FIeldByName('tiempo').asInteger
    else
       Result := -1; 
   QConsultarTiempoXDiaYMes.close;
 end;

ginesgomezlopez 20-06-2012 22:23:11

Gracias RONPABLO,


La franja horaria es GMT +2. Ahora son las 14:36:07.

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