Типы возврата SQL-запроса не были указаны (Int16) - PullRequest
0 голосов
/ 05 января 2012

Я вызываю хранимую процедуру TSQL из NHibernate 1.2.

var q = sessionStrategyNHibernate.GetSession()
   .CreateSQLQuery("exec myProc ?, ?, ?, ?")
   .SetString(0, "77")
   .SetInt32(1, 1)
   .SetResultTransformer(new AliasToBeanResultTransformer(typeof(Int16)))
   .SetParameter(2, dateMinInclue, NHibernateUtil.DateTime)
   .SetParameter(3, dateMaxExclue, NHibernateUtil.DateTime);

var nb = q.UniqueResult<Int16>();

Хранимая процедура myProc возвращает целое число (число)

create procedure myProc 
(
    @A nvarchar(255), 
    @B int,
    @C datetime,
    @D datetime
)
as
begin

    select count(*) as NB
    from ...

end
go

Но каждый раз возникает ошибка

Message : Return types of SQL query were not specified [exec myProc ?, ?, ?, ?] 

Что не так?

1 Ответ

0 голосов
/ 05 января 2012

COUNT возвращает SQL Server int, который подписан 32-разрядным. Не Int16

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...