Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DROP PROCEDURE Tabla_Clase
- USE [BBDD]
- GO
- --****** Object: StoredProcedure [dbo].[Tabla_ClasePropiedades_VB]
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- -- =============================================
- -- Author: <Jorge Sánchez>
- -- Create date: <05/10/2013>
- -- Description: <Generación de Código Fuente de VB NET con las propiedades de una clase a partir de una tabla de SQL>
- -- =============================================
- CREATE PROCEDURE [dbo].[PROC_Tabla_ClasePropiedades_VB]
- -- ***** PARAMETROS
- @Tabla CHAR(50)
- AS
- BEGIN
- IF NOT EXISTS(SELECT name FROM sysobjects WHERE sysobjects.name = @Tabla)
- PRINT 'ERROR !!! LA TABLA : [' + LTRIM(RTRIM(@Tabla)) + '] NO EXISTE'
- RETURN -1
- 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 ='Integer' END
- IF @Tipo = 'bit' BEGIN SELECT @Prefijo = 'b';SELECT @sTipo ='Boolean' END
- IF @Tipo = 'Date' OR @Tipo = 'Datetime' BEGIN SELECT @Prefijo = 'f';SELECT @sTipo ='Date' END
- SELECT @Prefijo = '_'
- -- ************** GENERAMOS LA PROPIEDAD
- PRINT 'Private '+ @Prefijo+LTRIM(RTRIM(@Campo)) + ' as ' + @sTipo
- PRINT 'Public Property ' + LTRIM(RTRIM(@Campo)) + '() As ' + @sTipo
- PRINT ' Get'
- PRINT ' Return '+ @Prefijo+LTRIM(RTRIM(@Campo))
- PRINT ' End Get'
- PRINT ' Set(ByVal value As ' + LTRIM(RTRIM(@sTipo)) + ')'
- PRINT ' '+ @Prefijo+LTRIM(RTRIM(@Campo)) + ' = value'
- PRINT ' End Set'
- PRINT 'End Property'
- PRINT ''
- PRINT ''
- -- *************************************************************************************************
- FETCH NEXT FROM Campos
- INTO @IdCampo,@Campo,@Tipo,@Longitud;
- END
- CLOSE Campos;
- DEALLOCATE Campos;
- END
- GO
Advertisement
Add Comment
Please, Sign In to add comment