Stored Procedures [dbo].[tng_add_class]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnYes
Parameters
NameData TypeMax Length (Bytes)
@classnamevarchar(30)30
@superclassnamevarchar(30)30
@virtual_classtinyint1
@vendor_namechar(30)30
@map_visibletinyint1
@vr_visibletinyint1
@external_datatinyint1
@open_spacetinyint1
@propagate_statustinyint1
@system_classtinyint1
@hidden_classtinyint1
@property_groupvarchar(10)10
@instance_storagevarchar(32)32
@popup_menu_namevarchar(30)30
@2d_icongroupvarchar(30)30
@3d_icongroupvarchar(30)30
@initial_xint4
@initial_yint4
@initial_zint4
@label_fontvarchar(10)10
@label_positionvarchar(20)20
@label_bordervarchar(5)5
@top_left_namevarchar(30)30
@top_right_namevarchar(30)30
@bottom_left_namevarchar(30)30
@bottom_right_namevarchar(30)30
Permissions
TypeActionOwning Principal
GrantExecuteuniadmin
GrantExecutewvadmin
SQL Script
/****** Object:  Stored Procedure dbo.tng_add_class    Script Date: 12/1/2005 11:50:14 PM ******/


CREATE procedure dbo.tng_add_class (
          @classname varchar(30),                 
          @superclassname varchar(30),
          @virtual_class tinyint =0,             
          @vendor_name char(30)=null,
             @map_visible      tinyint=1,        
          @vr_visible       tinyint=1,
          @external_data  tinyint=null,  /*1/30/96 @external_data  tinyint=0, */
          @open_space     tinyint=1,
          @propagate_status       tinyint=1,
          @system_class   tinyint=0,
          @hidden_class   tinyint=0,
          @property_group varchar(10)=null,
          @instance_storage varchar(32)=null,
          @popup_menu_name varchar(30)=null,
          @2d_icongroup varchar(30) =null,         
          @3d_icongroup varchar(30) =null,
          @initial_x        int =null,
          @initial_y        int =null,
          @initial_z        int =null,
          @label_font         varchar(10) =null,    
             @label_position     varchar(20) =null,    
             @label_border      varchar(5)     =null,
          @top_left_name varchar(30) =null,
          @top_right_name varchar(30) =null,    
          @bottom_left_name varchar(30) =null,
          @bottom_right_name varchar(30) =null  
          )
    as     set nocount on      
declare @super_class_id int
declare @vendor_id int
declare @rc int
declare @string varchar(255)
declare @vendor_full_name varchar(30)

  if(@superclassname='Class' and @classname='Class' )
    select @super_class_id=0
  else
  Begin
    select @super_class_id = null
    select @super_class_id =(select class_id from tng_class where name=@superclassname)
    if(    @super_class_id is null)
    begin
      raiserror 90021 'MSG:(90021) Bad @superclassname'
      return
    end
  end

  if(@vendor_name is null)
    select @vendor_id = 0 /*unknown vendor id*/
  else
  Begin
    select @vendor_id = null
    select @vendor_id = (select vendor_id from tng_vendor where vendor_name=@vendor_name)
    if(    @vendor_id is null)
    begin
      raiserror 90022 'MSG:(90022) Bad @vendor_name'
      return
    end
  end

  /*class has no instance and is not external storage*/
  /*
  if((@instance_storage is null) and (@external_data=0) )
    select @virtual_class=1
*/

  
  if(upper(@classname) = 'CLASS')
    select @superclassname='Class'

  begin transaction addclass           
    insert into dbo.tng_class (name, super_class_id, super_class_name,virtual_class,
                            map_visible, vr_visible,  system_class, hidden_class, instance_storage)
                           
                 values (@classname, @super_class_id, @superclassname, @virtual_class,  
                             @map_visible, @vr_visible,@system_class, @hidden_class, @instance_storage)

    if @@error != 0 or @@rowcount != 1
      begin
        raiserror 90023 'MSG:(90023) Can''t insert entry into tng_class table.'
        rollback transaction addclass
        return
      end
  commit transaction addclass

  /*get extent property of 2d and 3d for the class*/
  if(@2d_icongroup is null)
    select @2d_icongroup=name from tng_icon_2d    where name=@classname
  if(@3d_icongroup is null)
    select @3d_icongroup=name from tng_icon_3d where name=@classname
  /*2/13/96 if @3d_icongroup is still null, get icon group name from parent class*/
  if(@3d_icongroup is null)
    select @3d_icongroup=name from tng_icon_3d where name=@superclassname

/*4/22/96
  if (upper(@classname)!='CLASS')
  begin
    if(@virtual_class = 1 or @map_visible=0)
    begin    /*if is virtual class, don't specify following property in tng_class_ext table*/


      select @vendor_name=null, @label_font=null,@label_position=null,
               @label_border=null,@2d_icongroup=null,@3d_icongroup=null
      select @top_left_name=null,@top_right_name=null,@bottom_left_name=null,@bottom_right_name=null
    end
    if( @vr_visible=0)
    begin    /*if is virtual class, don't specify following property in tng_class_ext table*/

      select @3d_icongroup=null,@top_left_name=null,@top_right_name=null,@bottom_left_name=null,@bottom_right_name=null

    end
  end
*/
                           
  begin transaction addclass_ext

    /*1/31/96 for CLP popup_menu_name*/
    if ( @popup_menu_name is not null)
    begin
      select @rc=-1
      exec dbo.tng_is_attr_same_as_superclass     @classname=@classname,
                                           @name='popup_menu_name',
                                          @datatype='varchar',
                                           @string=@popup_menu_name,
                                        @rc=@rc OUTPUT
      
      if( @rc=0)
        exec dbo.tng_add_class_ext @classname=@classname,
                           @name='popup_menu_name',
                          @datatype='varchar',
                          @length=40,
                          @property_group='Map_2d',
                          @string=@popup_menu_name
    end

    if ( @external_data is not null)
    begin
      select @rc=-1, @string=convert(varchar(3),    @external_data)
      
      exec dbo.tng_is_attr_same_as_superclass     @classname=@classname,
                                           @name='external_data',
                                          @datatype='tinyint',
                                       /*    @tinyint=@external_data,*/
                                        @string=@string,
                                        @rc=@rc OUTPUT
      
      if( @rc=0)
        exec dbo.tng_add_class_ext @classname=@classname,
                           @name='external_data',
                          @datatype='tinyint',
                          @length=1,
                          @property_group='Class_Flag',
                          /*@tinyint=@external_data*/
                          @string=@string
    end

    

    if ( @open_space is not null)
    begin
      select @rc=-1,@string=convert(varchar(3),    @open_space)
      exec dbo.tng_is_attr_same_as_superclass     @classname=@classname,
                                           @name='open_space',
                                          @datatype='tinyint',
                                       /*    @tinyint=@open_space,*/
                                        @string=@string,
                                        @rc=@rc OUTPUT
      
      if( @rc=0)
        exec dbo.tng_add_class_ext @classname=@classname,
                           @name='open_space',
                          @datatype='tinyint',
                          @length=1,
                          @property_group='VR_3d',
                          /*@tinyint=@open_space*/
                          @string=@string
    end

  
    
/*06/14/96
    if ( @propagate_status is not null)
    begin
      select @rc=-1    , @string=convert(varchar(3),    @propagate_status)
      exec tng_is_attr_same_as_superclass     @classname=@classname,
                                           @name='status_propagation',
                                          @datatype='tinyint',
                                        @string=@string,
                                        @rc=@rc OUTPUT
      
      if( @rc=0)
        exec dbo.tng_add_class_ext @classname=@classname,
                           @name='status_propagation',    
                          @datatype='tinyint',
                          @length=1,
                          @property_group='Class_Flag',
                          /*@tinyint=@propagate_status*/

                          @string=@string
    end
*/

    if ( @vendor_name is not null)
    begin
      select @vendor_full_name=null
      select @vendor_full_name=name from tng_vendor where vendor_name=@vendor_name
      if(@vendor_full_name is not null)
        select @vendor_name=@vendor_full_name
      select @rc=-1
      exec dbo.tng_is_attr_same_as_superclass     @classname=@classname,
                                           @name='vendor_name',
                                          @datatype='varchar',
                                           @string=@vendor_name,
                                        @rc=@rc OUTPUT
      
      if( @rc=0)
        exec dbo.tng_add_class_ext @classname=@classname,
                           @name='vendor_name',
                          @datatype='varchar',
                          @length=40,
                          @property_group='Vendor',
                          @string=@vendor_name
    end



    if (@label_font is not null)
    begin
      select @rc=-1
      exec dbo.tng_is_attr_same_as_superclass     @classname=@classname,
                                           @name='label_font',
                                          @datatype='varchar',
                                           @string=@label_font,
                                        @rc=@rc OUTPUT
      
      if( @rc=0)
           exec dbo.tng_add_class_ext @classname=@classname,
                           @name='label_font',
                          @datatype='varchar',
                          @length=10,
                          @property_group='Map_2d',
                          @string=@label_font
    end

    if (@label_position is not null)
    begin
      select @rc=-1
      exec dbo.tng_is_attr_same_as_superclass     @classname=@classname,
                                           @name='label_position',
                                          @datatype='varchar',
                                           @string=@label_position,
                                        @rc=@rc OUTPUT
      
      if( @rc=0)
           exec dbo.tng_add_class_ext @classname=@classname,
                           @name='label_position',
                          @datatype='varchar',
                          @length=20,
                          @property_group='Map_2d',
                          @string=@label_position
    end

    if (@label_border is not null)
    begin
      select @rc=-1
      exec dbo.tng_is_attr_same_as_superclass     @classname=@classname,
                                           @name='label_border',
                                          @datatype='varchar',
                                           @string=@label_border,
                                        @rc=@rc OUTPUT
      
      if( @rc=0)
        exec dbo.tng_add_class_ext @classname=@classname,
                           @name='label_border',
                          @datatype='varchar',
                          @length=5,
                          @property_group='Map_2d',
                          @string=@label_border
    end

    if (@2d_icongroup is not null)
    begin
      select @rc=-1
      exec dbo.tng_is_attr_same_as_superclass     @classname=@classname,
                                           @name='icon_2d_name',
                                          @datatype='varchar',
                                           @string=@2d_icongroup,
                                        @rc=@rc OUTPUT
      
      if( @rc=0)
        exec dbo.tng_add_class_ext @classname=@classname,
                           @name='icon_2d_name',
                          @datatype='varchar',
                          @length=40,
                          @property_group='Map_2d',
                          @string=@2d_icongroup
    end
    if (@3d_icongroup is not null)
    begin
      select @rc=-1    
      exec dbo.tng_is_attr_same_as_superclass     @classname=@classname,
                                           @name='icon_3d_name',
                                          @datatype='varchar',
                                           @string=@3d_icongroup,
                                        @rc=@rc OUTPUT
      
      if( @rc=0)
        exec dbo.tng_add_class_ext @classname=@classname,
                           @name='icon_3d_name',
                          @datatype='varchar',
                          @length=40,
                          @property_group='VR_3d',
                          @string=@3d_icongroup
    end

    if (@initial_x is not null)
    begin
      select @rc=-1    , @string=convert(varchar(4),    @initial_x)
      exec dbo.tng_is_attr_same_as_superclass     @classname=@classname,
                                           @name='initial_x',
                                          @datatype='int',
                                           @string=@string,
                                        @rc=@rc OUTPUT
      
      if( @rc=0)
        exec dbo.tng_add_class_ext @classname=@classname,
                           @name='initial_x',
                          @datatype='int',
                          @length=4,
                          @property_group='VR_3d',
                          @string=@string
    end

    if (@initial_y is not null)
    begin
      select @rc=-1    , @string=convert(varchar(4),    @initial_y)
      exec dbo.tng_is_attr_same_as_superclass     @classname=@classname,
                                           @name='initial_y',
                                          @datatype='int',
                                           @string=@string,
                                        @rc=@rc OUTPUT
      
      if( @rc=0)
        exec dbo.tng_add_class_ext @classname=@classname,
                           @name='initial_y',
                          @datatype='int',
                          @length=4,
                          @property_group='VR_3d',
                          @string=@string
    end

    if (@initial_z is not null)
    begin
      select @rc=-1    , @string=convert(varchar(4),    @initial_z)
      exec dbo.tng_is_attr_same_as_superclass     @classname=@classname,
                                           @name='initial_z',
                                          @datatype='int',
                                           @string=@string,
                                        @rc=@rc OUTPUT
      
      if( @rc=0)
        exec dbo.tng_add_class_ext @classname=@classname,
                           @name='initial_z',
                          @datatype='int',
                          @length=4,
                          @property_group='VR_3d',
                          @string=@string
    end

    if (@top_left_name is not null)
    begin
      select @rc=-1
      exec dbo.tng_is_attr_same_as_superclass     @classname=@classname,
                                           @name='top_left_name',
                                          @datatype='varchar',
                                           @string=@top_left_name,
                                        @rc=@rc OUTPUT
      
      if( @rc=0)
        exec dbo.tng_add_class_ext @classname=@classname,
                           @name='top_left_name',
                          @datatype='varchar',
                          @length=40,
                          @property_group='VR_3d',
                          @string=@top_left_name
    end

    if (@top_right_name is not null)
    begin
      select @rc=-1
      exec dbo.tng_is_attr_same_as_superclass     @classname=@classname,
                                           @name='top_right_name',
                                          @datatype='varchar',
                                           @string=@top_right_name,
                                        @rc=@rc OUTPUT
      
      if( @rc=0)
        exec dbo.tng_add_class_ext @classname=@classname,
                           @name='top_right_name',
                          @datatype='varchar',
                          @length=40,
                          @property_group='VR_3d',
                          @string=@top_right_name
    end

    if (@bottom_left_name is not null)
    begin
      select @rc=-1
      exec dbo.tng_is_attr_same_as_superclass     @classname=@classname,
                                           @name='bottom_left_name',
                                          @datatype='varchar',
                                           @string=@bottom_left_name,
                                        @rc=@rc OUTPUT
      
      if( @rc=0)
        exec dbo.tng_add_class_ext @classname=@classname,
                           @name='bottom_left_name',
                          @datatype='varchar',
                          @length=40,
                          @property_group='VR_3d',
                          @string=@bottom_left_name
    end

    if (@bottom_right_name is not null)
    begin
      select @rc=-1
      exec dbo.tng_is_attr_same_as_superclass     @classname=@classname,
                                           @name='bottom_right_name',
                                          @datatype='varchar',
                                           @string=@bottom_right_name,
                                        @rc=@rc OUTPUT
      
      if( @rc=0)
        exec dbo.tng_add_class_ext @classname=@classname,
                           @name='bottom_right_name',
                          @datatype='varchar',
                          @length=40,
                          @property_group='VR_3d',
                          @string=@bottom_right_name
       end

  commit transaction addclass_ext
GO
GRANT EXECUTE ON  [dbo].[tng_add_class] TO [uniadmin]
GRANT EXECUTE ON  [dbo].[tng_add_class] TO [wvadmin]
GO
Uses