Tengo el siguiente dilema:
Tengo un sistema de tickets enlatado funcionando en SQL Server y APACHE y quiero que al crear un nuevo ticket en una aplicacion externa de VB NET le llegue un mensaje a está última.
Para ello es que:
He efectuado unas triggers para capturar el evento y mi idea es que se ejecute un store procedure que llame a la aplicacion externa de vb, pero no se bien como hacerlo.
Por lo que encontré lo podría hacer con los ASSEMBLIES de SQL Server 2005 (o posterior)
Entonces cree una clase en VB NET con una función muy simple que no hacía nada.
SP.DLL:
Código:
Luego desde el SQL Server hice lo siguiente de acuerdo a los errores que fui encontrandoImports system Imports system.text Imports system.Windows.Forms Public Class SPCL Public Sub spsub() MsgBox("hola") End Sub Public Shared Function SPFN() As String Return SPFN End Function End Class
Código:
--Esto era por unos errores que tenia. Con esto se corrigio ALTER DATABASE MANAGER SET TRUSTWORTHY ON GO sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'clr enabled', 1; GO RECONFIGURE; GO --Crear el ASSEMBLY CREATE ASSEMBLY SPAS AUTHORIZATION dbo FROM 'C:\Documents and Settings\Administrador\Mis documentos\Visual Studio 2005\Projects\SP\SP\bin\Debug\SP.dll' WITH PERMISSION_SET = EXTERNAL_ACCESS GO --Creo una función para llamar al ASSEMBLIES creado antes CREATE FUNCTION dbo.clrfuncion ( ) RETURNS nvarchar(200) AS EXTERNAL NAME [SPAS].[SP.SPCL].[SPFN]; --Funcion que llama al ASSEMBLY --Ejecuto esa función exec clrfuncion
Hasta aqui me funcionó. Pero al incorporar las siguientes instrucciones en la clase de net me da errores
msgbox
process.start
al llamar a un form, etc
Por lo que veo es que no puedo mas que devolver valores escalares y cosas de ese estilo. Pero no estoy seguro.
Si me dan una mano estaré muy agradecido.
Desde ya muchas gracias por su tiempo.