You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ITSM/.svn/pristine/7b/7b6adb252c3117a6e44811f47f2...

79 lines
9.4 KiB

USE [Vertragsverwaltung_20160404]
GO
/****** Object: StoredProcedure [dbo].[sp_vertragselement_search] Script Date: 02.12.2016 09:08:53 ******/
DROP PROCEDURE [dbo].[sp_vertragselement_search]
GO
/****** Object: StoredProcedure [dbo].[sp_vertragselement_search] Script Date: 02.12.2016 09:08:55 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE proc [dbo].[sp_vertragselement_search] @query varchar(1000),
@fnkt int,
@mitarbeiternr int
as
SET NOCOUNT ON
declare
@SQLWhere varchar(4096),
@xsql varchar(4096)
set @sqlwhere = ''
-- Suche nach Vertragspartner.NameZ1
if @fnkt=0 begin
set @sqlwhere = ' vertragspartner.namez1 like ' + + char(39) + '%' + @query + '%' + char(39)
set @xsql='SELECT dbo.vertragselement.vertragselementnr, dbo.Vertragspartner.NameZ1 + ' + char(39) + ' ' + char(39) + ' + dbo.Vertragspartner.NameZ2 +' + char(39) + ', ' + char(39) + '+ dbo.Vertragspartner.Ort AS Vertragspartner, dbo.Vertragstyp.Vertragstyp, '
set @xsql=@xsql+' dbo.Vertragselement.Bezeichnung, dbo.Vertragselement.Version, dbo.Vertragselement.Versionsdatum, dbo.vertragselement.nummer '
set @xsql=@xsql+' FROM dbo.Vertragselement INNER JOIN dbo.Vertragspartner ON dbo.Vertragselement.VertragspartnerNr = dbo.Vertragspartner.VertragspartnerNr INNER JOIN '
set @xsql=@xsql+' dbo.Vertragstyp ON dbo.Vertragselement.VertragstypNr = dbo.Vertragstyp.Vertragstypnr '
set @xsql=@xsql+' where dbo.vertragselement.securitylevelnr<=dbo.get_securitylevel('+str(@mitarbeiternr)+') and ' + @sqlwhere + ' order by vertragselement.bezeichnung '
exec(@xsql)
return
end
-- Suche nach Vertragselement.Bezeichnung
if @fnkt=1 begin
set @sqlwhere = ' vertragselement.bezeichnung like ' + + char(39) + '%' + @query + '%' + char(39)
set @xsql='SELECT dbo.vertragselement.vertragselementnr, dbo.Vertragspartner.NameZ1 + ' + char(39) + ' ' + char(39) + ' + dbo.Vertragspartner.NameZ2 +' + char(39) + ', ' + char(39) + '+ dbo.Vertragspartner.Ort AS Vertragspartner, dbo.Vertragstyp.Vertragstyp, '
set @xsql=@xsql+' dbo.Vertragselement.Bezeichnung, dbo.Vertragselement.Version, dbo.Vertragselement.Versionsdatum, dbo.vertragselement.nummer '
set @xsql=@xsql+' FROM dbo.Vertragselement INNER JOIN dbo.Vertragspartner ON dbo.Vertragselement.VertragspartnerNr = dbo.Vertragspartner.VertragspartnerNr INNER JOIN '
set @xsql=@xsql+' dbo.Vertragstyp ON dbo.Vertragselement.VertragstypNr = dbo.Vertragstyp.Vertragstypnr '
set @xsql=@xsql+' where dbo.vertragselement.securitylevelnr<=dbo.get_securitylevel('+str(@mitarbeiternr)+') and ' + @sqlwhere + ' order by vertragselement.bezeichnung '
exec(@xsql)
return
end
-- Suche nach Vertragselement.Inhalt
if @fnkt=2 begin
set @sqlwhere = ' vertragselement.Beschreibung like ' + + char(39) + '%' + @query + '%' + char(39)
set @xsql='SELECT dbo.vertragselement.vertragselementnr, dbo.Vertragspartner.NameZ1 + ' + char(39) + ' ' + char(39) + ' + dbo.Vertragspartner.NameZ2 +' + char(39) + ', ' + char(39) + '+ dbo.Vertragspartner.Ort AS Vertragspartner, dbo.Vertragstyp.Vertragstyp, '
set @xsql=@xsql+' dbo.Vertragselement.Bezeichnung, dbo.Vertragselement.Version, dbo.Vertragselement.Versionsdatum '
set @xsql=@xsql+' FROM dbo.Vertragselement INNER JOIN dbo.Vertragspartner ON dbo.Vertragselement.VertragspartnerNr = dbo.Vertragspartner.VertragspartnerNr INNER JOIN '
set @xsql=@xsql+' dbo.Vertragstyp ON dbo.Vertragselement.VertragstypNr = dbo.Vertragstyp.Vertragstypnr '
set @xsql=@xsql+' where dbo.vertragselement.securitylevelnr<=dbo.get_securitylevel('+str(@mitarbeiternr)+') and ' + @sqlwhere + ' order by vertragselement.bezeichnung '
exec(@xsql)
return
end
-- Suche nach Vertragselement.Suchbegriffe
if @fnkt=3 begin
set @sqlwhere = ' vertragselement.suchbegriffe like ' + + char(39) + '%' + @query + '%' + char(39)
set @xsql='SELECT dbo.vertragselement.vertragselementnr, dbo.Vertragspartner.NameZ1 + ' + char(39) + ' ' + char(39) + ' + dbo.Vertragspartner.NameZ2 +' + char(39) + ', ' + char(39) + '+ dbo.Vertragspartner.Ort AS Vertragspartner, dbo.Vertragstyp.Vertragstyp, '
set @xsql=@xsql+' dbo.Vertragselement.Bezeichnung, dbo.Vertragselement.Version, dbo.Vertragselement.Versionsdatum '
set @xsql=@xsql+' FROM dbo.Vertragselement INNER JOIN dbo.Vertragspartner ON dbo.Vertragselement.VertragspartnerNr = dbo.Vertragspartner.VertragspartnerNr INNER JOIN '
set @xsql=@xsql+' dbo.Vertragstyp ON dbo.Vertragselement.VertragstypNr = dbo.Vertragstyp.Vertragstypnr '
set @xsql=@xsql+' where dbo.vertragselement.securitylevelnr<=dbo.get_securitylevel('+str(@mitarbeiternr)+') and ' + @sqlwhere + ' order by vertragselement.bezeichnung '
exec(@xsql)
return
end
GO