SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE FUNCTION [dbo].[f_capitalize]
(
	@value		ais_name
)
RETURNS ais_name
AS
BEGIN

	/*
	[DGE]
		Cette fonction transforme une chaîne de caractères de forme aa_bb_cc en AaBbCc.
		Elle est utilisée pour transformer les noms de champs de la base de données (et des tables)
		en noms de variables conformes aux normes c#.
		
		Exemple: 
			table	acc_accounts		---> AccAccounts
			champ 	fld_table_name		---> FldTableName
	*/

	DECLARE	@result				ais_name,
			@i					int,
			@last_char			char,
			@new_char			char
								
	select	@result = '',
			@last_char = '_',
			@i = 1

	while @i <= len(@value)
	begin
		set @new_char = SUBSTRING(@value, @i, 1)
		
		if @last_char = '_'
			set @new_char = upper(@new_char)

		select	@result = @result + @new_char,
				@last_char = @new_char
			
		set @i = @i + 1
	end	
	
	select	@result = REPLACE(@result, '_', '')

	return	@result
	
	
END

	
GO
