Показать сообщение отдельно
Старый 11.05.2010, 11:51   #3  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Я как-то давно сталкивался с проблемой в том, что несмотря на то, что хранимая процедура как бы возвращает значение - она реально его не возвращает (дело было еще в аксессе, но это фича общая).
Т.е. ошибка не в разрешении самом, а в использовании метода executeQuery() вместо executeUpdate().
Для решения проблемы нужно сделать одно из двух действий:
а) Заменить вызов executeQuery() на executeUpdate() и отказаться от анализа результатов отработки процедуры (от resultSet)
б) Заменить процедуру функцией, которая возвращает таблицу. В этом случае нужно вместо exec procedure() писать select * from function()
В FUNCTION (Transact-SQL) http://msdn.microsoft.com/ru-ru/libr...SQL.90%29.aspx
Цитата:
Пользовательская функция не может выполнять действия, изменяющие состояние базы данных.
т.е. в самом теле функции EXEC или TRUNCATE TABLE запрещен.

Последний раз редактировалось Poleax; 11.05.2010 в 12:10.