20.08.2017
Эффективная Навигация М2М
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум (скрипты, вопросы...) » CyberFleet » Скрипты для CyberFleet, CrossPoint » Скрипт копирования данных аналогового датчика за период (с аналогового датчика №10 на №11)
Скрипт копирования данных аналогового датчика за период
logoffДата: Пятница, 03.02.2012, 14:03 | Сообщение # 1
Тамбов
Группа: Администраторы
Сообщений: 648
Репутация: 17
Статус: Offline
для среды MSDE или выше

Code

use BN -- имя базы данных
set dateformat dmy
declare @sid_form int,@sid_to int,@object_id int
declare @start datetime, @stop datetime

select @object_id= -- поиск номера Объекта по его гаражному
(select objectid from dbo.FLEET_Object as o where o.ObjectGarNum like '%553%' and o.ObjectActive=1)   

select @sid_form=10 -- номер датчика откуда копируем
, @sid_to=11 -- номер датика куда копируем

select @start='01/01/2010',@stop='14/01/2012' -- период за который переносим данные

if -- проверка что в новом датчика за данный период данные отсутствуют
exists (select top 1 idrec from dbo.FLEET_AnalogData   
where ObjectID=@object_id and tele_time between @start and @stop and [sens_num]=@sid_to)   
   begin
   print 'За копируемый период есть данные в датчике получателе!'
   return -- закомментировать строку полностью, если нужно что бы данные удалились
     
   delete from dbo.FLEET_AnalogData   
   where ObjectID=@object_id and tele_time between @start and @stop and [sens_num]=@sid_to
   print 'данные удалены в датчике получателе'
   end
     
insert into dbo.FLEET_AnalogData ([tele_time]
        ,[speed]
        ,[direction]
        ,[sens_value]
        ,[lat]
        ,[lon]
        ,[flags]
        ,[sens_num]
        ,[ObjectID]
        ,[device_sens_value])
select [tele_time]
        ,[speed]
        ,[direction]
        ,[sens_value]
        ,[lat]
        ,[lon]
        ,[flags]
        ,@sid_to
        ,[ObjectID]
        ,[device_sens_value]
    FROM [dbo].[FLEET_AnalogData]
    where  ObjectID=@object_id and tele_time between @start and @stop and [sens_num]=@sid_form
      
    delete from [dbo].[FLEET_AnalogData]
    where  ObjectID=@object_id and tele_time between @start and @stop and [sens_num]=@sid_form
     


где:
BN - имя базы данных КиберФлита

select @object_id= -- поиск номера Объекта по его гаражному
(select objectid from dbo.FLEET_Object as o where o.ObjectGarNum like '%553%' and o.ObjectActive=1)
553 искомая последовательность в гаражном номере

select @sid_form=10 -- номер датчика откуда копируем
, @sid_to=11 -- номер датика куда копируем

select @start='01/01/2010',@stop='14/01/2012' -- период за который переносим данные
с 01 января 2010 года по 14 января 2012 года

на выходе получается что все накопленные данные из датчика с №10 перенесены на датчик №11
 
Форум (скрипты, вопросы...) » CyberFleet » Скрипты для CyberFleet, CrossPoint » Скрипт копирования данных аналогового датчика за период (с аналогового датчика №10 на №11)
Страница 1 из 11
Поиск:

LogOff © 2017
Сайт создан в системе uCoz Рейтинг GPS Клуба. GPS навигаторы. GPS мониториг. GPS трекеры. ГЛОНАСС