29.03.2024
Эффективная Навигация М2М
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум (скрипты, вопросы...) » CyberFleet » Скрипты для CyberFleet, CrossPoint » Заполнения группы списком ТС с аналоговыми датчикаки (Процедура)
Заполнения группы списком ТС с аналоговыми датчикаки
logoffДата: Среда, 04.07.2012, 19:02 | Сообщение # 1
Тамбов
Группа: Администраторы
Сообщений: 655
Репутация: 19
Статус: Offline
проверено на SQL 2005 standart
Выполнено ввиде процедуры для более удобного использования в периодическом задании
Code

USE [bn_patp_dob] -- имя вышей базы данных
GO
/****** Object:  StoredProcedure [dbo].[CF_group_with_AnalogSensor]    Script Date: 07/04/2012 19:00:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:  <Бондарь Михаил>
-- Create date: 12/08/2011
-- Description:    Отправка инфо об отсуствии данных по ТС
-- =============================================
Create PROCEDURE [dbo].[CF_group_with_AnalogSensor]   
   (@group_name varchar(255)='ДУТ: Есть аналоговые датчики')
AS
BEGIN
   -- SET NOCOUNT ON added to prevent extra result sets from
   -- interfering with SELECT statements.
   SET NOCOUNT ON;

/*   
версия от 02-07-2012   
заполняется состав группы спиком ТС с аналоговыми датчиками

*/
declare @group_id int
select top 1 @group_id=ObjectGroupeID from  bn.dbo.FLEET_ObjectGroupe
where ObjectGroupeName=@group_name
if @group_id is null begin
INSERT INTO [BN].[dbo].[FLEET_ObjectGroupe]
             ([ObjectGroupeName]
             ,[ObjectGroupeDiscription]
             ,[Spec]
             ,[ImageFilename])
       VALUES
             (@group_name
             ,'Автогруппа - есть аналоговые датчики'
             ,0
             ,'')
set @group_id=@@IDENTITY
end

delete from bn.dbo.FLEET_ObjectRelation WHERE [ObjectGroupeID]=@group_id;
insert into bn.dbo.FLEET_ObjectRelation   
     ([ObjectID]
             ,[ObjectGroupeID]
             ,[OrderBy])
   select DISTINCT O.ObjectID, @group_id,null
    FROM [BN].[dbo].[SYS_DEV_Sensor] as S
        inner join [BN].dbo.SYS_DEV_Device as D on d.id=s.device_id
        inner join bn.dbo.FLEET_Object as O on o.Device_ID=d.id
    where [sensor_type_id]=0 and [SensorActive]=1 and o.ObjectActive=1

END


использование
Code

DECLARE @RC int
DECLARE @group_name varchar(255)

-- TODO: задайте здесь значения параметров.

EXECUTE @RC = [bn_patp_dob].[dbo].[CF_group_with_AnalogSensor]   
     @group_name='Имя группы для заполнения'
GO


В процедуру передается имя группы - если группа с именем не найдена, то она будет создана автоматически
Замените bn_patp_dob на вашу базу данных (или создайте базу данных с этим именем).

У меня запуск происходит каждый час в рабочее время.
 
Форум (скрипты, вопросы...) » CyberFleet » Скрипты для CyberFleet, CrossPoint » Заполнения группы списком ТС с аналоговыми датчикаки (Процедура)
  • Страница 1 из 1
  • 1
Поиск:

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