Visual Basic.NET - Codigo vb.net que genere Procedimientos sql

 
Vista:

Codigo vb.net que genere Procedimientos sql

Publicado por vlg (48 intervenciones) el 03/03/2006 18:02:20
Hola mi intencion es crear una aplicacion de consola que genere procedimientos almacenados o funciones definidas de usuario desde vb.net, ¿alguien sabe de que codigo utilizar?
Yo he intentado leer el fichero *.sql que genera la opcion "Generar secuencia de comando SQL" e intentar ejecutarlo pero me no interpreta correctamente el codigo, el codigo que utilizo es el siguiente :

'Esta funcion lee el fichero *.sql con el fin de luego ejecutarlo con el pComm.ExecuteNonQuery()

Function cargaStrinSQL() As String
Dim ptxtSQL As New StreamReader("func.sql")
Dim pSQL As String
pSQL = ptxtSQL.ReadToEnd
Return pSQL
End Function

Sub Main()
Dim pCon As SqlConnection
Dim pComm As SqlCommand
Dim pStrCon As String
Dim pstringSQL As String

Try
' prepare command string

'pstringSQL = "INSERT INTO ClientesCampanya (IdCampanya, IdCliente) VALUES(4, 1)"
pstringSQL = cargaStrinSQL()
'MsgBox(pstringSQL)
pStrCon = "server=srvctcdv;database=GestComSeur1;uid=sa;pwd=Desarrollo"
pCon = New SqlConnection(pStrCon)
pCon.Open()
pComm = New SqlCommand(pstringSQL, pCon)
pComm.ExecuteNonQuery()
pCon.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

el codigo que hay en el fichero *.sql es el siguiente : (este codigo lo que hace es crear una funcion de usuario)

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SQLGetDireccionFiscalCliente1]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[SQLGetDireccionFiscalCliente1]
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE FUNCTION dbo.SQLGetDireccionFiscalCliente1 (@IdCliente int)
RETURNS nvarchar(100)
AS
BEGIN
DECLARE @F nvarchar(100)
DECLARE @Abrev nvarchar(3)
DECLARE @Direcc nvarchar(75)
DECLARE @Num nvarchar(11)
DECLARE @Piso nvarchar(3)
DECLARE @Puerta nvarchar(3)
DECLARE @Bloq nvarchar(3)
DECLARE @Esc nvarchar(3)
(SELECT @Abrev=TiposDireccion.Abreviatura, @Direcc=Direcciones.Direccion, @num=Direcciones.Numero,
@Piso=Direcciones.Piso, @Puerta=Direcciones.Puerta, @Bloq=Direcciones.Bloque, @Esc=Direcciones.Esc
FROM Direcciones
INNER JOIN Sitios ON Direcciones.IdDireccion=Sitios.IdDireccion AND Sitios.Fiscal=1
INNER JOIN SitiosCCC ON SitiosCCC.IdSitio=Sitios.IdSitio
INNER JOIN CCC ON CCC.IdCCC=SitiosCCC.IdCCC
INNER JOIN TiposDireccion ON TiposDireccion.IdTipoDireccion=Direcciones.IdTipoDireccion
INNER JOIN Localidades ON Direcciones.IdLocalidad=Localidades.IdLocalidad
WHERE CCC.IdCliente=@IdCliente)

IF @Abrev IS NULL
BEGIN
SET @F='-'
END
ELSE
BEGIN
SET @F=ltrim(rtrim(@Abrev)) + ' ' +@Direcc
IF NOT @Num IS NULL and @Num<>''
BEGIN
SET @F=ltrim(rtrim(@F)) + ' Num...:' + @Num
END
IF NOT @Piso IS NULL and @Piso<>''
BEGIN
SET @F=ltrim(rtrim(@F)) + ' Pis:' + @Piso
END
IF NOT @Puerta IS NULL and @Puerta<>''
BEGIN
SET @F=ltrim(rtrim(@F)) + ' Puert:' + @Puerta
END
IF NOT @Bloq IS NULL and @Bloq<>''
BEGIN
SET @F=ltrim(rtrim(@F)) + ' Bloq.:' + @Bloq
END
IF NOT @Esc IS NULL and @Esc<>''
BEGIN
SET @F=ltrim(rtrim(@F)) + ' Esc.:' + @Esc
END
/*IF NOT @Num IS NULL OR @Num<>""
BEGIN
SET @F=@F + ' ' + @Num
END*/
END
RETURN(@F)
END

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder