2010-10-23 13 views
5

SQL Server 2005 supporta CLR quindi significa che è possibile utilizzare CLR nel backend, quindi come farlo, ho alcune funzioni in C# che eseguono alcune manipolazioni complesse con la variabile data/ora ora desidero usare quelle funzioni in SP. Prima di tutto È POSSIBILE FARE QUESTO.Come chiamare la funzione C# in stored procedure

+0

che tipo di " un po 'complesso manipolazione con variabile data-ora "; Personalmente non ne ho mai visto uno che non possa essere fatto in TSQL ... –

+0

sì, hai ragione che possiamo fare tutte le manipolazioni con datetime in TSQL. qui parte complessa manipolazione è in dll quindi dobbiamo usarli (ri usabilità). quindi la mia domanda è: possiamo chiamare quelle funzioni in TSQL? –

risposta

-1

Date un'occhiata questo esempio 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 

Quando si chiama

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

richiama una funzione di C# è simile al seguente

[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 
} 
Problemi correlati