2010-10-23 26 views
5

SQL Server 2005 CLR'yi destekler, bu yüzden CLR'yi arka planda kullanabiliriz, böylece nasıl yapılacağını, C# işlevinde bazı işlevlerim var. Bu işlevleri SP'de kullanmak için. Her şeyden önce BU YAPABİLİR OLABİLİR.Saklı yordamda C# işlevi nasıl çağrılır?

+0

Ne tür benziyor çağırır biraz karmaşık tarih-zaman değişkeni ile manipülasyon "; Şahsen TSQL'de yapamayacağınız birisine rastlamadım ... –

+0

Evet, TSQL'de datetime ile tüm manipülasyonları yapabileceğimiz doğru. Burada karmaşık manipülasyon kısmı dll'de olduğundan onları kullanmalıyız (yeniden kullanılabilirlik). Bu yüzden sorumuz TSQL'de bu fonksiyonu söyleyebilir miyiz? –

cevap

-1

Eğer

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

çağırdığınızda bir bakış, bu TSQL örnek

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 

atın Bir C# işlevi "nin bu

[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 
} 
İlgili konular