2010-10-23 106 views
5

SQL Server 2005 admite CLR por lo que significa que podemos usar CLR en back-end, así que cómo hacer eso, tengo alguna función en C# que haga una manipulación compleja con la variable de fecha y hora para usar esas funciones en SP. Antes que nada ES POSIBLE HACER ESTO.Cómo llamar a la función C# en el procedimiento almacenado

+0

qué tipo de " algo complejo manipulación con la variable de fecha y hora "; Personalmente no he encontrado uno que no se pueda hacer en TSQL ... –

+0

sí, tienes razón en que podemos hacer todas las manipulaciones con datetime en TSQL. aquí la parte de manipulación compleja está en dll, así que debemos usarla (re usability). entonces mi pregunta es ¿podemos llamar a esas funciones en TSQL? –

Respuesta

-1

Tome una mirada este ejemplo TSQL

USE [XXX] GO SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO CREATE PROCEDURE [dbo].[Testing_XXX] 
@broadcastId [int], 
@XXXTemplateHtml [nvarchar](max), 
@XXXTemplateText [nvarchar](max), 
@XXXTemplateSubject [nvarchar](max), 
@XXXTemplateEmailHeaders [nvarchar](max), 
@XXXTemplateHeader [nvarchar](max), 
@XXXTemplateFooter [nvarchar](max), 
@masterTemplate [nvarchar](max), 
@parseOptions [nvarchar](4000), 
@xsltTemplate [nvarchar](max) OUTPUT WITH EXECUTE AS CALLER AS EXTERNAL NAME SolutionXXX.ProjectXXX].[StoredProcedures].[XXX_Parser_Parse] GO 

Cuando se llama a

EXTERNAL NAME [SolutionXXX.ProjectXXX].[StoredProcedures].[XXX_Parser_Parse] 

invoca una función de C# es el siguiente

[SqlProcedure] 
public static void XXX_Parser_Parse(
    SqlInt32 broadcastId, 
    [SqlFacet(MaxSize = -1)] 
    SqlString XXXTemplateHtml, 
    [SqlFacet(MaxSize = -1)] 
    SqlString XXXTemplateText, 
    [SqlFacet(MaxSize = -1)] 
    SqlString XXXTemplateSubject, 
    [SqlFacet(MaxSize = -1)] 
    SqlString XXXTemplateEmailHeaders, 
    [SqlFacet(MaxSize = -1)] 
    SqlString XXXTemplateHeader, 
    [SqlFacet(MaxSize = -1)] 
    SqlString XXXTemplateFooter, 
    [SqlFacet(MaxSize = -1)] 
    SqlString masterTemplate, 
    SqlString parseOptions, 
    [SqlFacet(MaxSize = -1)] 
    out SqlString xsltTemplate) 
{ 
//blah blah blh 
} 
Cuestiones relacionadas