Buenas Tardes:
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:
Imports 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
Luego desde el SQL Server hice lo siguiente de acuerdo a los errores que fui encontrando
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.