1. Содаешь базу, в ней табицу с 3мя полями:
event_ts timestamp
value_1 decimal(10,4)
value_2 decimal(10,4)
Думаю длинны 6.4 для твоих данных вполне хватит.
2. На форме нужны будут:
Connection: TADOConnection
qAdd : TADOQuery
qExport : TADOQuery
3. В qAdd вводишь такой запрос:
Код:
INSERT INTO DataTbl VALUES (:ts, :v1, :v2)
И настраиваешь типы параметров, соотв ts - datetime, v1 и v2 - числовые.
4. По кнопке:
Код:
procedure TForm1.Buttion1Click(Sender : TObject);
begin
qAdd.Params.ParamByName('ts').AsDateTime := Date + Time;
qAdd.Params.ParamByName('v1').AsFloat := random*20-10; // -10..+10
qAdd.Params.ParamByName('v2').AsFloat := random*20-10; // -10..+10
qAdd.ExecSql;
end;
5. Дальше, на форму бросаешь TDateTimePicker для фильтра по дате.
6. В qExport добавляешь запрос:
Код:
SELECT event_ts, value_1, value_2 from DataTbl where event_ts >= :dt1 and event_ts < :dt2
И настраиваешь параметры dt1 и dt2, datetime
7. По второй кнопке для экспорта:
Код:
procedure TForm1.Button2Click(Sender : TObject);
begin
qExport.Active := False; // ну, на всякий случай
qExport.Params.ParamByName('dt1').AsDate := DateTimePicker1.Date;
qExport.Params.ParamByName('dt2').AsDate := DateTimePicker1.Date + 1;
qExport.Open;
qExport.First;
While Not qExport.Eof Do
Begin
// Здесь собственно экспорт в Excel строк
// Предварительно надо создать объект экселя
// Вообще, можно просто вывести в csv текстовый файл, он экселем прекрасно читается
qExport.Next;
End;
qExport.Close;
end;
end;
Ну вот как-то так.
Работу с экселем через OLE ищи поиском, было много примеров, в т.ч. и на этом сайте, там не сложно, но лень писать.