October 2009
M T W T F S S
    Nov »
 1234
567891011
12131415161718
19202122232425
262728293031  

Archives

Categories

  • [+]ASP.NET (7) 
  • [+]C# (87) 
  • [+]C++ (13) 
  • [+]Delphi (20) 
  • [+]JavaScript (24) 
  • [+]Regular Expressions (7) 
  • [—]SQL (13) 
  • [+]VB (100) 
  • [+]VB.NET (4) 

Online

Users: 5 Guests
  • Loading...


    Loading...

    Login






    Register | Lost password?

    Register





    A password will be mailed to you.
    Log in | Lost password?

    Retrieve password





    A confirmation mail will be sent to your e-mail address.
    Log in | Register
  • Adding a string array to database

    Author: Eric Liew

    /*
    This is a SQL UserFunction that takes a string array and converts it to an array to allow you to process the array. Purpose is to allow you to make one call to the database if you have to add multiple records instead of processing single records at a time
    */
    
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_SplitItems]') and xtype in (N'FN', N'IF', N'TF'))
    drop function [dbo].[fn_SplitItems]
    GO
    
    SET QUOTED_IDENTIFIER OFF
    GO
    SET ANSI_NULLS OFF
    GO
    
    CREATE   function fn_SplitItems (@ItemArray varchar(2048), @Delimiter varchar(10) = ',')
    returns @ItemList TABLE
    (
            Item varchar(50),
            Ordinal int
    )
    as
    begin
            DECLARE
                    @DelimiterLength int,
                    @IdxStart int,
                    @IdxEnd int,
                    @Item varchar(50),
                    @Ordinal int
    
            select @DelimiterLength = DATALENGTH(@Delimiter)
            select @IdxStart = 1
            select @Ordinal = 0
    
            while 1=1
            begin
                    select @IdxEnd = CHARINDEX(@Delimiter, @ItemArray, @IdxStart)
                    if @IdxEnd = 0
                            select @Item = LTRIM(RTRIM(substring(@ItemArray, @IdxStart, DATALENGTH(@ItemArray) - @IdxStart + 1)))
                    else
                            select @Item = LTRIM(RTRIM(substring(@ItemArray, @IdxStart, @IdxEnd - @IdxStart)))
    
                    select @Ordinal = @Ordinal + 1
                    insert @ItemList (Item, Ordinal) values (@Item, @Ordinal)
                    if @IdxEnd = 0 break
                    select @IdxStart = @IdxEnd + @DelimiterLength
            end
            return
    end
    
    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    SET ANSI_NULLS ON
    GO
    

    Share: These icons link to social bookmarking sites where readers can share and discover new web pages.
    • Digg
    • del.icio.us
    • Bloglines
    • Facebook
    • Google Bookmarks
    • LinkedIn
    • Technorati
    • TwitThis
    • Webnews

    Leave a Reply

     

     

     

    You can use these HTML tags

    <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <font color="" face="" size=""> <span style="">

    Spam Protection by WP-SpamFree Plugin