Constancia icon

SQL_PROC_Tabla_ClasePropiedades_C#

Constancia | PRO | 02/15/14 07:18:51 PM UTC | 0 ⭐ | 269 👁️ | Never ⏰ | []
PL/SQL |

2.38 KB

|

None

|

0 👍

/

0 👎

/******* 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