Constancia

SQL_PROC_Tabla_ClasePropiedades_C#

Feb 15th, 2014
322
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 2.38 KB | None | 0 0
  1. /******* Object:  StoredProcedure [dbo].[Tabla_ClasePropiedades_C#] **************/  
  2. /******* Fecha: 15/02/2014 21:23:59 ******/
  3. /******* Autor : Jorge Sánchez  ********/
  4.  
  5. ALTER PROCEDURE [dbo].[Tabla_ClasePropiedades_C#]
  6. @Tabla CHAR(50)
  7.  
  8. AS
  9.  
  10. BEGIN
  11.  
  12. DECLARE @IdCampo INT,@Campo CHAR(50),@Tipo CHAR(50),@Longitud INT --,@Permite_Nulo CHAR(10),@Tabla_Externa CHAR(50),
  13. DECLARE @Prefijo CHAR(1),@sTipo CHAR(10)
  14.  
  15. DECLARE Campos CURSOR
  16.     FOR SELECT DISTINCT
  17. syscolumns.colid AS IdCampo, syscolumns.name AS Campo, systypes.name AS Tipo,
  18. syscolumns.LENGTH AS Longitud
  19. FROM        
  20. sysobjects sysobjects_1 RIGHT OUTER JOIN
  21. sysforeignkeys ON sysobjects_1.id = sysforeignkeys.rkeyid RIGHT OUTER JOIN
  22. syscolumns INNER JOIN
  23. sysobjects ON syscolumns.id = sysobjects.id INNER JOIN
  24. systypes ON syscolumns.xtype = systypes.xtype ON sysforeignkeys.fkeyid = syscolumns.id AND
  25. sysforeignkeys.fkey = syscolumns.colid LEFT OUTER JOIN
  26. sysindexkeys ON sysobjects.id = sysindexkeys.id AND syscolumns.colid = sysindexkeys.colid
  27. WHERE  
  28. sysobjects.name = @Tabla AND systypes.name <> 'sysname'
  29. ORDER BY syscolumns.colid
  30.  
  31. OPEN Campos
  32.  
  33.  
  34.  
  35. FETCH NEXT FROM Campos
  36. INTO @IdCampo,@Campo,@Tipo,@Longitud;
  37.  
  38. WHILE @@FETCH_STATUS = 0
  39. BEGIN
  40. -- ****************************** PRINT DE LAS PROPIEDADES ****************************************
  41.  
  42. -- *********>> PREFIJO DE LA PROPIEDAD
  43. SELECT @Prefijo = 'x'
  44. SELECT @sTipo = 'xxxxx'
  45.  
  46. IF @Tipo = 'char' OR @Tipo = 'nchar' OR @Tipo = 'varchar' BEGIN SELECT @Prefijo = 's';SELECT @sTipo ='string' END
  47. IF @Tipo = 'int' OR @Tipo = 'Numeric' BEGIN SELECT @Prefijo = 'i';SELECT @sTipo ='int' END
  48. IF @Tipo = 'bit' BEGIN SELECT @Prefijo = 'b';SELECT @sTipo ='Boolean' END
  49. IF @Tipo = 'Date' OR @Tipo = 'Datetime' BEGIN SELECT @Prefijo = 'f';SELECT @sTipo ='DateTime' END
  50.  
  51. SELECT @Prefijo = '_'
  52.  
  53. -- ************** GENERAMOS LA PROPIEDAD
  54. PRINT 'private '+  LTRIM(RTRIM(@sTipo)) + ' ' + @Prefijo+LTRIM(RTRIM(@Campo)) + ';'
  55. PRINT 'public ' + LTRIM(RTRIM(@sTipo)) + ' ' +  LTRIM(RTRIM(@Campo))
  56. PRINT '{'
  57. PRINT ' get {return ' + @Prefijo+LTRIM(RTRIM(@Campo)) + ';}'
  58. PRINT ' set {' + @Prefijo+LTRIM(RTRIM(@Campo)) +' = value; }'
  59. PRINT '}'
  60. PRINT ''
  61. PRINT ''
  62.  
  63.  
  64. -- *************************************************************************************************
  65.  
  66.  
  67. FETCH NEXT FROM Campos
  68. INTO @IdCampo,@Campo,@Tipo,@Longitud;
  69.  
  70. END
  71. CLOSE Campos;
  72. DEALLOCATE Campos;
  73.  
  74. END
Advertisement
Add Comment
Please, Sign In to add comment