Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 attempt to initiate new sql operation with results pending  [new]
borjomez
Member

Откуда:
Сообщений: 7
ms sql 7.

У меня софтина в нескольких потоках обращается к базе.
если в одном потоке открыт select, то при попытке открыть другой запрос сервер
ругается: attempt to initiate new sql operation with results pending.

с чем это связано и как победить?
7 ноя 01, 16:33    [16262]     Ответить | Цитировать Сообщить модератору
 RE:attempt to initiate new sql operation with results pending  [new]
cvasil
Guest
Какую библиотеку Вы используете для подключения к серверу?
7 ноя 01, 19:33    [16263]     Ответить | Цитировать Сообщить модератору
 RE:attempt to initiate new sql operation with results pending  [new]
borjomez
Member

Откуда:
Сообщений: 7
использую ZeosDBO (компоненты прямого доступа для C++ Builder/ Delphi).
PS: ADO/BDE/ODBC не предлагать.
7 ноя 01, 20:45    [16264]     Ответить | Цитировать Сообщить модератору
 RE:attempt to initiate new sql operation with results pending  [new]
cvasil
Guest
Такое впечатление что эта компонентя использует DB-Library для доступа к MS SQL серверу.
DB-Library не поддерживает многопоточное обращение, т.е. для того чтобы решить Вашу задачу придется либо создавать дополнительный коннект, либо выполнять запросы строго последовательноо (второй только после завершения первого).
7 ноя 01, 21:25    [16265]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: attempt to initiate new sql operation with results pending  [new]
Moneo
Member

Откуда:
Сообщений: 61
cvasil
Такое впечатление что эта компонентя использует DB-Library для доступа к MS SQL серверу.
DB-Library не поддерживает многопоточное обращение, т.е. для того чтобы решить Вашу задачу придется либо создавать дополнительный коннект, либо выполнять запросы строго последовательноо (второй только после завершения первого).


Столкнулся с аналогичной проблемой используя Lazarus, sqlconnector с типом подключения MSSQLServer и dblib.dll в папке с моей программой к MySQL Server Express 2014. Один запрос делает выборку к таблице и второй пытается сделать выборку из этой же таблицы, но выдаете ошибку как у автора темы. Как можно миновать ошибку не закрывая первый запрос? Нужно новый sqlconnector заводить или как подключиться без dll если в ней дело?
20 дек 16, 14:56    [20027391]     Ответить | Цитировать Сообщить модератору
 Re: attempt to initiate new sql operation with results pending  [new]
Владислав Колосов
Member

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

дык одно ядро CPU доступно, оно два запроса за раз не обработает.
20 дек 16, 15:50    [20027792]     Ответить | Цитировать Сообщить модератору
 Re: attempt to initiate new sql operation with results pending  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Владислав Колосов
Moneo,

дык одно ядро CPU доступно, оно два запроса за раз не обработает.

одно ядро 1 запрос? 2 - 2? эхххх
20 дек 16, 15:53    [20027813]     Ответить | Цитировать Сообщить модератору
 Re: attempt to initiate new sql operation with results pending  [new]
o-o
Guest
классно же, число ядер по числу пользователей.
сколько их лезет одновременно в гуглобазу?
вот столько и ядер у их процессоров
20 дек 16, 15:55    [20027830]     Ответить | Цитировать Сообщить модератору
 Re: attempt to initiate new sql operation with results pending  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Упускаете, что это в одном коннекте.
Разные коннекты выстраиваются в очередь, ошибка не вылетает :)
Причем здесь ядра и пользователи? :) Это ваши фантазии.
20 дек 16, 15:58    [20027856]     Ответить | Цитировать Сообщить модератору
 Re: attempt to initiate new sql operation with results pending  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Владислав Колосов
Упускаете, что это в одном коннекте.
Разные коннекты выстраиваются в очередь, ошибка не вылетает :)
Причем здесь ядра и пользователи? :) Это ваши фантазии.

в одном коннекте 2 запроса? нет этого не бывает
20 дек 16, 16:00    [20027881]     Ответить | Цитировать Сообщить модератору
 Re: attempt to initiate new sql operation with results pending  [new]
Владислав Колосов
Member

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

бывает, почему же не бывает.
20 дек 16, 16:02    [20027900]     Ответить | Цитировать Сообщить модератору
 Re: attempt to initiate new sql operation with results pending  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Владислав Колосов
TaPaK,

бывает, почему же не бывает.

это только у тех у кого 2 ядра, судя по всему
20 дек 16, 16:03    [20027905]     Ответить | Цитировать Сообщить модератору
 Re: attempt to initiate new sql operation with results pending  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
ODBC умеет разделять подключение и одновременно делать fetch данных, например.
20 дек 16, 16:05    [20027922]     Ответить | Цитировать Сообщить модератору
 Re: attempt to initiate new sql operation with results pending  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Владислав Колосов
ODBC умеет разделять подключение и одновременно делать fetch данных, например.


автор
дык одно ядро CPU доступно, оно два запроса за раз не обработает.
20 дек 16, 16:07    [20027938]     Ответить | Цитировать Сообщить модератору
 Re: attempt to initiate new sql operation with results pending  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
TaPaK,
а, понял. Результаты еще не загружены а клиента, а он посылает второй запрос.
20 дек 16, 16:11    [20027965]     Ответить | Цитировать Сообщить модератору
 Re: attempt to initiate new sql operation with results pending  [new]
Moneo
Member

Откуда:
Сообщений: 61
Владислав Колосов
TaPaK,
а, понял. Результаты еще не загружены а клиента, а он посылает второй запрос.


Всё загружено, результаты первого запроса висят в визуальной сетке dbgrid, второй запрос к этой же таблице по нажатию кнопки с разных sqlquery, вот он и ругается при попытке сделать 2 выборку, пока 1 запрос не закроешь. Тоже слышал что на express 2014 одно ядро работает, но не слышал что могу быть какие либо ограничения по запросам с этим связанные.
21 дек 16, 13:57    [20031879]     Ответить | Цитировать Сообщить модератору
 Re: attempt to initiate new sql operation with results pending  [new]
Владислав Колосов
Member

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

отчет надо пролистать до конца, тогда все данные будут получены. Если это поможет, то особенности клиента. Данные с сервера могут быть прочитаны не сразу, а подгружены по мере обращения к ним.
21 дек 16, 14:06    [20031933]     Ответить | Цитировать Сообщить модератору
 Re: attempt to initiate new sql operation with results pending  [new]
o-o
Guest
может, выставить set nocount on?
мало ли, считает, что это тоже результат
21 дек 16, 14:12    [20031971]     Ответить | Цитировать Сообщить модератору
 Re: attempt to initiate new sql operation with results pending  [new]
Moneo
Member

Откуда:
Сообщений: 61
Владислав Колосов
Moneo,

отчет надо пролистать до конца, тогда все данные будут получены. Если это поможет, то особенности клиента. Данные с сервера могут быть прочитаны не сразу, а подгружены по мере обращения к ним.


Вообщем похоже вы были правы, он загрузил 20 записей в sqlquery, так как в свойстве размер пакета стояло 20 и ожидал дальнейшего обращения к выборке. Поставил -1 - проблема исчерпана.
21 дек 16, 15:59    [20032683]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить