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,
@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
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
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
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
if(@3d_icongroup is null)
select @3d_icongroup=name from tng_icon_3d where name=@superclassname
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
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
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',
@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',
@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',
@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',
@string=@string
end
@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