Script voor cre-eren van een HTTP endpoint met een webmethod voor elke stored procedure in de database.

Reuze handig in combinatie met het script om voor elke tabel in je database de CRUD stored procedures te generen. Op deze manier heb je CRUD methods voor elke tabel die via je webservice beschikbaar zijn.

Voorbeeld script:

-- Zet de database
declare @d varchar(100)
set @d ='iPrestoTest'



-- Proc variabele voor opslaan stored procedure naam
declare @proc varchar(100)

-- Zet eerste deel van het script
DECLARE @script nvarchar(4000)
-- drop eerst de enpoint
-- set @script = N'drop endpoint ' + @d 
-- print @script
-- exec sp_executesql @script


set @script = 'CREATE ENDPOINT ' +  @d   +
    ' STATE = STARTED
AS HTTP
(
    PATH = '
-- set @script = @script + '''/SQL'''   + ',' +
set @script = @script + char(39) + '/' + +  @d   + char(39) +  ',' +
    'AUTHENTICATION = (INTEGRATED),
    PORTS = (CLEAR),
    SITE = ' + '''*'''
set @script = @script + ')
    FOR SOAP
    ('
    
-- Zet laatste deel van het script
declare @scriptfooter varchar(8000)
set @scriptfooter = '   WSDL = DEFAULT,
    SCHEMA = STANDARD)'

-- Create temp table
DECLARE @p TABLE 
(
    tablename varchar(100)
)
 
-- Vul de temp table met stored procedures namen
insert into @P (tablename)
     SELECT     name FROM sys.procedures WHERE(name LIKE 'udp_app_%')           

-- Create a cursor om doorheen te loopen
declare c cursor for select tablename from @p 
open c 
FETCH NEXT from C into @proc 
WHILE @@FETCH_STATUS = 0

 Begin 
    -- Vul het script aan met webmethods
    set @script = @script + 'WEBMETHOD ' + char(39) +  @proc +  char(39) 
    set @script = @script + '(NAME = ' + char(39)  +  + @d + '.dbo.'+ @proc + char(39) +  '),'
    set @script = @script + char(10) + char(13)
    FETCH NEXT FROM c INTO @proc
 end

close c
Deallocate c

-- Vul script aan met footerscript
set @script = @script + @scriptfooter
-- Script uitvoeren
--print @script
exec sp_executesql @script

{{opmerking.Naam}}:

{{opmerking.OpmerkingText}}

            

Saving your comment....

Naam is verplicht!
Email is verplicht!
Opmerking is verplicht!