Torna al Thread

CREATE PROCEDURE dbo.proc_count_items -- Indica SEMPRE lo schema. @textbox_items nvarchar(2050) AS BEGIN SET NOCOUNT ON; declare @occorrenze int declare @len int declare @index int declare @min int declare @pos int declare @max int declare @temp1 varchar(255) declare @temp2 varchar(255) declare @calc int set @occorrenze= (len(@textbox_items)-len(replace(@textbox_items,'||','')))/2+1 --numero di items presenti nella stringa set @textbox_items=replace(@textbox_items,'||','|') set @textbox_items=replace(@textbox_items,'--','-') set @textbox_items=@textbox_items+'|' --controlla che il primo carattere siaà diverso da --,quindi aggiunge --un valore '-1' if substring(@textbox_items,1,1)= '--' begin set @textbox_items='-1'+@textbox_items end set @max=len(@textbox_items) --massima posizione --explode della stringa set @min = 1 --posizione di partenza while @occorrenze > 0 begin --CHARINDEX ( expression1 ,expression2 [ , start_location ] ) --la sub string andrà da @min a @max --SUBSTRING ( value_expression ,start_expression , length_expression ) set @max=CHARINDEX('|',@textbox_items,@min) set @calc=@max-@min --set @temp=SUBSTRING(@textbox_items,@min,@calc) --trovata la sottostringa del primo item,controllo estraggo i primi 2 campi --campo 1 set @pos=CHARINDEX('-',@textbox_items,@min) set @calc=@pos-@min set @temp1=SUBSTRING(@textbox_items,@min,@calc) --valore 1 set @min=@pos+1 --campo2 set @pos=CHARINDEX('-',@textbox_items,@min) set @calc=@pos-@min set @temp2=SUBSTRING(@textbox_items,@min,@calc) --valore 2 --scrive nel db insert into dbo.temp_items (web_value,sql_value) values (@temp1,@temp2) --aggiorna @min con @max set @min=@max+1 set @occorrenze=@occorrenze-1; --decrementa il contatore delle occorreze end END GO
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5