Как считать значение из базы данных
Как считать значение канала из базы данных записное 15 часов назад?
Как Вы оцениваете обслуживание, которое получили?
Оценка удовлетворенности от АСУТП ЗСМ-7 7 лет назад
Добавьте комментарий о качестве обслуживания (необязательно):
Спасибо. Рабочий скрипт, может кому пригодится:
{Pascal Script}
Var
begindate, enddate, date: TDateTime;
reccount: integer;
res, value: double;
stream: TMemoryStream;
error: word;
// Выполняется при старте скрипта
procedure OnStartScript;
begin
stream := TMemoryStream.Create;
end;
// Выполняется при завершении работы скрипта
procedure OnStopScript;
begin
stream.free;
end;
Begin
WriteValue('Проталкивание',Now);
// дата начала
begindate := Now - ((1/24/60/6) * 5);
// конечная дата
enddate := begindate + ((1/24/60/60)*2);
// считаем данные из БД в буфер
stream.clear;
error := StreamReadFromDatabase(begindate, enddate, 'Установка платформ', stream);
WriteValue('Ошибка',error);
// error code
// DB_READ_OK = 0;
// DB_DATE_ERROR = 1;
// DB_MEMORY_OVERFLOW = 2;
// DB_CHANNEL_NOTFOUND = 3;
res := 0;
if error = 0 then
begin
// кол - во записей за считываемый интервал времени
reccount := GetCountRecordToStream(stream);
// вычитываем данные из буфера
while GetValueFromStream(stream, date, value) do
begin
WriteValue('позиция 15',value);
// date - метка времени
// value - значение канала
end;
end;
end.