2016-03-08 70 views
1

是否可以將一個參數數組傳遞給通過CFQL生成的存儲過程?CFQL /存儲過程方法中的數組參數

我們從設計者生成的方法沒有任何問題。但我還沒有找到任何方法在SQL Server上單元執行它。

當試圖通過代碼來執行,該代碼將失敗,並給出錯誤:

Operand type clash: table type is incompatible with int

上產生的委:

System.Data.IDataReader reader = CodeFluentContext.Get(XYZ.Constants.XYZCodeFluentStoreName).Persistence.ExecuteReader(); 

CFQL身體情況如下:

LOAD (enumABCGroup[] groups) WHERE ABC.Group IN (@groups) ORDER BY NumberExt 

生成程序是:

CREATE PROCEDURE [XYZ].[ABC_LoadByGroups] 
(
    @groups [int], 
    @_orderBy0 [nvarchar] (64) = NULL, 
    @_orderByDirection0 [bit] = 0 
) 
AS 
    SET NOCOUNT ON 
    SELECT DISTINCT ... 
    FROM [XYZ].[ABC] 
    WHERE [XYZ].[ABC].[ABC_Group] IN (@groups) 
    ORDER BY [XYZ].[ABC].[ABC_Group] ASC, [XYZ].[ABC].[ABC_Label] ASC 

    RETURN 
GO 

基礎數據庫系統是SQL Server 2012(v11.0.5058.0)。

感謝您的幫助;

回答

1

我想你忘記了配置SQL Server生產商的目標至少是SQL Server 2008中:

或XML:

<cf:producer name="SQL Server" typeName="CodeFluent.Producers.SqlServer.SqlServerProducer, CodeFluent.Producers.SqlServer"> 
    <cf:configuration targetVersion="Sql2008" /> 
</cf:producer> 

下面是關於CodeFluent實體一些有用的資源, TVP:

+0

事實上,這個參數是丟失,爲您的支持表示感謝。 –