Отсутствует набор результатов, если процедуры хранилища выполняют обновление до выбора на MSSQL server 2005 - PullRequest
2 голосов
/ 26 января 2011

Есть ли у кого-нибудь идеи, почему я не получу набор результатов, если я выполню обновление перед процедурой выбора в хранилище.Я использую MSSQL server 2005 и последнюю версию драйвера Microsoft JDBC.

Соответствующий код Java:

CallableStatement cstmt = con.prepareCall("{call dbo.sp_groups_select}");
if (cstmt.execute()) {
    while (cstmt.getResultSet().next())

Не получает набор результатов, если процедура сохранения выглядит следующим образом:

CREATE PROCEDURE [dbo].[sp_groups_select] AS
update Computers set ComputerName='Foo'  where ComputerName='bar';
select * from Computers;

Но если это выглядит так, я получаю набор результатов

CREATE PROCEDURE [dbo].[sp_groups_select] AS
select * from Computers;
update Computers set ComputerName='Foo'  where ComputerName='bar';

1 Ответ

7 голосов
/ 26 января 2011

Вероятно, потому что вам нужно SET NOCOUNT ON

Эквивалент (x rows affected) обрабатывается как набор результатов в клиенте, который включает cstmt.getResultSet().next()

Бесстыдная заглушка моего вопроса о SET NOCOUNT ON

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