Вызов хранимой процедуры из сервиса запроса при смене версии MS SQL Server

Доброго времени суток, коллеги.
Клиент TerrasoftCRM 3.3.2.245
Такая проблема: на основании данного форума я сделал сервис SelectQuery:

SELECT
        1 AS [a] INTO #tmp
DROP TABLE #tmp

EXEC GetMissingDocuments
/*  AS [FakeHeader],
         AS [DocNumber],
         AS [TaskID],
        */

IF 1=0
SELECT 1 AS [FakeFooter]
FROM
        [dbo].[tbl_DatabaseInfo] AS [tbl_DatabaseInfo]

и вызывал через него хранимую процедуру. Вызывал так:
[js]
var SelectQuery = GetSingleItemByCode('sq_GetMissingDocuments', 'GetMissingDocumentsTasks');
var Result = SelectQuery.Open();
[/js]
Пока база работала на MS SQL Server 2005 все было нормально. После перехода на SQL Server 2008 R2 при вызове SelectQuery.Open() получаю ошибку "Ошибка открытия источника данных "".
Оригинальное сообщение об ошибке: Неопознанная ошибка". Причем если выполнить этот запрос в SSMS, то он выполняется корректно. В SQL Server Profiler ошибок тоже нет. На клиентском компьютере установлена версия SQL Native Client 2008 R2. Куда еще можно копнуть?

Нравится

5 комментариев

Можно переделать логику чисто на скрипт, без сервиса. Как тут.

"Зверев Александр" написал:Можно переделать логику чисто на скрипт, без сервиса.

Моя хранимая процедура возвращает таблицу. Ее можно завернуть в выходной параметр хранимой процедуры?

Можно процедуру в функцию переделать, с функциями в 2008 проблем не было. Также см. обсуждение, там тоже под новую версию переделывали.

"Зверев Александр" написал:Можно процедуру в функцию переделать

Попробую конечно, но все равно не понятно. У меня в базе есть еще одна аналогичная конструкция. Отличается тем, что ХП в ней получает параметры и результат достается через Dataset и отображается на форме. И она прекрасно работает.

Подобные способы использования что процедуры, что функции являются «хаком» и обходом стандартного поведения сервиса sq, их работа всегда и везде не гарантируется. Возможно, в 2008 что-то изменилось в движке работы с БД.

"Riptor" написал:И она прекрасно работает.

Это хорошо.:cool:

Показать все комментарии