Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 ODBC multi resultset  [new]
UV
Member

Откуда: EU
Сообщений: 36
Привет всем. Я не нашел секция для ODBC и поетому пишу здесь. (Русский у меня не родной, так что ошибки у меня много.)

У меня хранимая процедура вернувшая 2+ resultset-a:

create procedure XXX
...
SELECT ... FROM aa
SELECT ... FROM bb
...

Вызов процедуры через SQLExecDirect(... "{call XXX}" ). Проблем что потом SQLFetch извлекает только первы resultset (в верхней псевдо-пример ето таблица "аа"). Надеюс, что есть способ получит все resultset-ов?
28 май 13, 11:46    [14358120]     Ответить | Цитировать Сообщить модератору
 Re: ODBC multi resultset  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
привет, у меня русский тоже не родной

победить вашу проблему очень легко

просто переделайте вашу хранимую процедуру чтобы она возвращала один resultset
28 май 13, 11:50    [14358157]     Ответить | Цитировать Сообщить модератору
 Re: ODBC multi resultset  [new]
Гость333
Member

Откуда:
Сообщений: 3683
UV,

SQLMoreResults
28 май 13, 11:52    [14358175]     Ответить | Цитировать Сообщить модератору
 Re: ODBC multi resultset  [new]
invm
Member

Откуда: Москва
Сообщений: 9413
How to process results (ODBC)
28 май 13, 11:57    [14358220]     Ответить | Цитировать Сообщить модератору
 Re: ODBC multi resultset  [new]
Glory
Member

Откуда:
Сообщений: 104760
И еще не забудь те задать SQL_COPT_SS_MARS_ENABLED для вашего коннекта
28 май 13, 12:02    [14358264]     Ответить | Цитировать Сообщить модератору
 Re: ODBC multi resultset  [new]
UV
Member

Откуда: EU
Сообщений: 36
Гость333
UV,

SQLMoreResults

Спасибо.
28 май 13, 12:03    [14358273]     Ответить | Цитировать Сообщить модератору
 Re: ODBC multi resultset  [new]
UV
Member

Откуда: EU
Сообщений: 36
Glory
И еще не забудь те задать SQL_COPT_SS_MARS_ENABLED для вашего коннекта

А почему ето нужно? Я исполняю хранимая процедура, она создает много resultset-ов. Если точно понял, MARS_ENABLED нужен если выполняются 2+ SQLExecDirect и потом начинают SQLFetch для каждого.
28 май 13, 16:05    [14360250]     Ответить | Цитировать Сообщить модератору
 Re: ODBC multi resultset  [new]
Glory
Member

Откуда:
Сообщений: 104760
UV
А почему ето нужно?

Потому что если внимательно прочитать хелп, то

SQL_COPT_SS_MARS_ENABLED

This attribute enables or disables Multiple Active Result Sets (MARS). By default, MARS is disabled. This attribute should be set before making a connection to SQL Server. Once the connection SQL Server is opened, MARS will remain enabled or disabled for the life of the connection.

Value Description

SQL_MARS_ENABLED_NO Default. Multiple Active Result Sets (MARS) is disabled.

SQL_MARS_ENABLED_YES MARS is enabled.
28 май 13, 16:07    [14360276]     Ответить | Цитировать Сообщить модератору
 Re: ODBC multi resultset  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Glory,

Multiple Active Result Sets и "просто" Multiple Result Sets — разные вещи. При последовательной обработке резалтсетов, возвращённых хранимой процедурой, MARS не нужен.
28 май 13, 16:27    [14360475]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить