Constancia

SQL_PROC_Tabla_Modelo_EF_VB

Mar 28th, 2014
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 3.01 KB | None | 0 0
  1. -- DROP PROCEDURE [dbo].[Tabla_Modelo_EF_VB]
  2.  
  3. -- EXEC Tabla_Modelo_EF_VB 'Tabla'
  4.  
  5. USE [BD]
  6. GO
  7.  
  8. /****** Object:  StoredProcedure [dbo].[Tabla_Modelo_EF_VB]    Script Date: 03/28/2014 22:20:00 ******/
  9. SET ANSI_NULLS ON
  10. GO
  11.  
  12. SET QUOTED_IDENTIFIER ON
  13. GO
  14.  
  15. CREATE PROCEDURE [dbo].[PROC_Tabla_Modelo_EF_VB]
  16.     @Tabla CHAR(50)
  17. AS
  18. BEGIN
  19.  
  20. DECLARE @IdCampo INT,@Campo CHAR(50),@Tipo CHAR(50),@Longitud INT,@IdKey INT ,@Permite_Nulo INT--,@Tabla_Externa CHAR(50),
  21. DECLARE @sTipo CHAR(10),@Anotaciones VARCHAR(500)
  22.  
  23. DECLARE Campos CURSOR
  24. FOR
  25. SELECT DISTINCT
  26. sys.syscolumns.colid, sys.syscolumns.name AS Col, sys.systypes.name AS Tipo, sys.syscolumns.LENGTH AS Longitud, sys.sysindexkeys.colid AS IdKey,
  27. sys.syscolumns.isnullable
  28. FROM        
  29. sys.sysobjects AS sysobjects_1 RIGHT OUTER JOIN
  30. sys.sysforeignkeys ON sysobjects_1.id = sys.sysforeignkeys.rkeyid RIGHT OUTER JOIN
  31. sys.syscolumns INNER JOIN
  32. sys.sysobjects ON sys.syscolumns.id = sys.sysobjects.id INNER JOIN
  33. sys.systypes ON sys.syscolumns.xtype = sys.systypes.xtype ON sys.sysforeignkeys.fkeyid = sys.syscolumns.id AND sys.sysforeignkeys.fkey = sys.syscolumns.colid LEFT OUTER JOIN
  34. sys.sysindexkeys ON sys.sysobjects.id = sys.sysindexkeys.id AND sys.syscolumns.colid = sys.sysindexkeys.colid
  35. WHERE
  36. sys.sysobjects.name = @Tabla
  37. AND sys.systypes.name <> 'sysname'
  38. ORDER BY
  39. sys.syscolumns.colid
  40.  
  41. OPEN Campos
  42.  
  43.  
  44. FETCH NEXT FROM Campos
  45. INTO @IdCampo,@Campo,@Tipo,@Longitud,@IdKey,@Permite_Nulo;
  46.  
  47. WHILE @@FETCH_STATUS = 0
  48. BEGIN
  49. -- ****************************** PRINT DE LAS PROPIEDADES ****************************************
  50.  
  51. -- *********>> TIPOS
  52. SELECT @sTipo = 'xxxxx'
  53.  
  54. IF @Tipo = 'char' OR @Tipo = 'nchar' OR @Tipo = 'varchar' BEGIN SELECT @sTipo ='string' END
  55. IF @Tipo = 'int' OR @Tipo = 'Numeric' BEGIN SELECT @sTipo ='Integer' END
  56. IF @Tipo = 'bit' BEGIN SELECT @sTipo ='Boolean' END
  57. IF @Tipo = 'Date' OR @Tipo = 'Datetime' BEGIN SELECT @sTipo ='Date' END
  58.  
  59.  
  60. --- *********>> ANOTACIONES
  61.  
  62. SELECT @Anotaciones = ''
  63. IF @IdKey IS NOT NULL BEGIN SELECT @Anotaciones = @Anotaciones + '<Key()> _' + CHAR(13) END
  64. IF @IdKey IS NOT NULL BEGIN SELECT @Anotaciones = @Anotaciones + '<DatabaseGenerated(DatabaseGeneratedOption.None)> _' + CHAR(13) END
  65. IF @Permite_Nulo = 0 BEGIN SELECT @Anotaciones = @Anotaciones + '<Required(ErrorMessage:="El Campo ' + LTRIM(RTRIM(@Campo)) + ' es Obligatorio")> _' + CHAR(13) END
  66. SELECT @Anotaciones = @Anotaciones + '<Display(Name:=" ' + LTRIM(RTRIM(@Campo)) + ' ")> _' + CHAR(13)
  67. IF @Tipo = 'char' OR @Tipo = 'nchar' OR @Tipo = 'varchar' BEGIN
  68.     SELECT @Anotaciones = @Anotaciones + '<MaxLength(' + CONVERT(VARCHAR,@Longitud) + ')> _'
  69. END
  70.  
  71.  
  72. -- ************** GENERAMOS LA PROPIEDAD
  73. PRINT @Anotaciones
  74. PRINT 'Public Property ' + LTRIM(RTRIM(@Campo)) + ' As ' + @sTipo
  75. PRINT ''
  76. --PRINT ''
  77. -- *************************************************************************************************
  78.  
  79.  
  80. FETCH NEXT FROM Campos
  81. INTO @IdCampo,@Campo,@Tipo,@Longitud,@IdKey,@Permite_Nulo;
  82.  
  83. END
  84. CLOSE Campos;
  85. DEALLOCATE Campos;
  86.  
  87. END
  88.  
  89. GO
Advertisement
Add Comment
Please, Sign In to add comment