/******* Object: StoredProcedure [dbo].[Tabla_ClasePropiedades_C#] **************/
/******* Fecha: 15/02/2014 21:23:59 ******/
/******* Autor : Jorge Sánchez ********/
ALTER PROCEDURE [dbo].[Tabla_ClasePropiedades_C#]
@Tabla CHAR(50)
AS
BEGIN
DECLARE @IdCampo INT,@Campo CHAR(50),@Tipo CHAR(50),@Longitud INT --,@Permite_Nulo CHAR(10),@Tabla_Externa CHAR(50),
DECLARE @Prefijo CHAR(1),@sTipo CHAR(10)
DECLARE Campos CURSOR
FOR SELECT DISTINCT
syscolumns.colid AS IdCampo, syscolumns.name AS Campo, systypes.name AS Tipo,
syscolumns.LENGTH AS Longitud
FROM
sysobjects sysobjects_1 RIGHT OUTER JOIN
sysforeignkeys ON sysobjects_1.id = sysforeignkeys.rkeyid RIGHT OUTER JOIN
syscolumns INNER JOIN
sysobjects ON syscolumns.id = sysobjects.id INNER JOIN
systypes ON syscolumns.xtype = systypes.xtype ON sysforeignkeys.fkeyid = syscolumns.id AND
sysforeignkeys.fkey = syscolumns.colid LEFT OUTER JOIN
sysindexkeys ON sysobjects.id = sysindexkeys.id AND syscolumns.colid = sysindexkeys.colid
WHERE
sysobjects.name = @Tabla AND systypes.name <> 'sysname'
ORDER BY syscolumns.colid
OPEN Campos
FETCH NEXT FROM Campos
INTO @IdCampo,@Campo,@Tipo,@Longitud;
WHILE @@FETCH_STATUS = 0
BEGIN
-- ****************************** PRINT DE LAS PROPIEDADES ****************************************
-- *********>> PREFIJO DE LA PROPIEDAD
SELECT @Prefijo = 'x'
SELECT @sTipo = 'xxxxx'
IF @Tipo = 'char' OR @Tipo = 'nchar' OR @Tipo = 'varchar' BEGIN SELECT @Prefijo = 's';SELECT @sTipo ='string' END
IF @Tipo = 'int' OR @Tipo = 'Numeric' BEGIN SELECT @Prefijo = 'i';SELECT @sTipo ='int' END
IF @Tipo = 'bit' BEGIN SELECT @Prefijo = 'b';SELECT @sTipo ='Boolean' END
IF @Tipo = 'Date' OR @Tipo = 'Datetime' BEGIN SELECT @Prefijo = 'f';SELECT @sTipo ='DateTime' END
SELECT @Prefijo = '_'
-- ************** GENERAMOS LA PROPIEDAD
PRINT 'private '+ LTRIM(RTRIM(@sTipo)) + ' ' + @Prefijo+LTRIM(RTRIM(@Campo)) + ';'
PRINT 'public ' + LTRIM(RTRIM(@sTipo)) + ' ' + LTRIM(RTRIM(@Campo))
PRINT '{'
PRINT ' get {return ' + @Prefijo+LTRIM(RTRIM(@Campo)) + ';}'
PRINT ' set {' + @Prefijo+LTRIM(RTRIM(@Campo)) +' = value; }'
PRINT '}'
PRINT ''
PRINT ''
-- *************************************************************************************************
FETCH NEXT FROM Campos
INTO @IdCampo,@Campo,@Tipo,@Longitud;
END
CLOSE Campos;
DEALLOCATE Campos;
END
Comments