информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Похоже MySQL не поддерживает серверные курсоры ADO. Даже... 15.02.07 04:13  Число просмотров: 3063
Автор: void <Grebnev Valery> Статус: Elderman
<"чистая" ссылка>
> Если какие-то скрытые грабли при использовании байндинг к
> рекордсет для MySQL?
> Проблема в том, что для совершенно вменяемых вызовов
> хранимых процедур MySQL случается экзепшн-ы. Постоянно!
> ODBC лог (на клиенте) пишет, что соединение с сервером
> потеряно. В тоже время, error и qury лог на mysql пишет,
> что клиент получил ошибку чтения данных и сервер сделал
> аборт соединению. com_error же пишит в экзепшн обычные для
> M$ просто невменяемые вещи, типа нет ресурсов.
>
> Интересно, что если заменить вызов хранимых процедур на
> текст соответствующих запросов, то до какого-то момента
> работает. Особено плохо тем процедурам, где в теле запросов
> находятся union, или подзапросы. Может не в
> IADORecordBinding дело?
>
> ПС. Курсоры - серверные, таймауты по умолчанию. В принципе,
> хотя запросы и тяжёлые в процедурах, но время исполнения (в
> SQL browser) не более 300 ms.
>
> ППС. Помогите, пожалуйста мыслями.
Похоже MySQL не поддерживает серверные курсоры ADO. Даже если явно установить для _ConnectionPtr курсор adUseServer (что честно наследует _CommandPtr или _RecordsetPtr), то в дампе TCP/MySQL protocol видно, что MySQL передаёт клиенту весь набор данных, запрошенный или запросом или хранимой процедурой.
Оказалось также, что проблема с потерей соединения характерна для тех хранимых процедур, которые вызываются в цикле на клиенте. Такое впечатление, что это баг сервера MySQL, а не клиентской части. Интересно и то, что для ADO.NET 1.0.7 connector для MySQL аналогичных проблем не наблюдается пока.
<programming>
[c++] + iadorecordbinding = активно неработающее приложение. 13.02.07 04:53  
Автор: void <Grebnev Valery> Статус: Elderman
<"чистая" ссылка>
Если какие-то скрытые грабли при использовании байндинг к рекордсет для MySQL?
Проблема в том, что для совершенно вменяемых вызовов хранимых процедур MySQL случается экзепшн-ы. Постоянно! ODBC лог (на клиенте) пишет, что соединение с сервером потеряно. В тоже время, error и qury лог на mysql пишет, что клиент получил ошибку чтения данных и сервер сделал аборт соединению. com_error же пишит в экзепшн обычные для M$ просто невменяемые вещи, типа нет ресурсов.

Интересно, что если заменить вызов хранимых процедур на текст соответствующих запросов, то до какого-то момента работает. Особено плохо тем процедурам, где в теле запросов находятся union, или подзапросы. Может не в IADORecordBinding дело?

ПС. Курсоры - серверные, таймауты по умолчанию. В принципе, хотя запросы и тяжёлые в процедурах, но время исполнения (в SQL browser) не более 300 ms.

ППС. Помогите, пожалуйста мыслями.
Похоже MySQL не поддерживает серверные курсоры ADO. Даже... 15.02.07 04:13  
Автор: void <Grebnev Valery> Статус: Elderman
<"чистая" ссылка>
> Если какие-то скрытые грабли при использовании байндинг к
> рекордсет для MySQL?
> Проблема в том, что для совершенно вменяемых вызовов
> хранимых процедур MySQL случается экзепшн-ы. Постоянно!
> ODBC лог (на клиенте) пишет, что соединение с сервером
> потеряно. В тоже время, error и qury лог на mysql пишет,
> что клиент получил ошибку чтения данных и сервер сделал
> аборт соединению. com_error же пишит в экзепшн обычные для
> M$ просто невменяемые вещи, типа нет ресурсов.
>
> Интересно, что если заменить вызов хранимых процедур на
> текст соответствующих запросов, то до какого-то момента
> работает. Особено плохо тем процедурам, где в теле запросов
> находятся union, или подзапросы. Может не в
> IADORecordBinding дело?
>
> ПС. Курсоры - серверные, таймауты по умолчанию. В принципе,
> хотя запросы и тяжёлые в процедурах, но время исполнения (в
> SQL browser) не более 300 ms.
>
> ППС. Помогите, пожалуйста мыслями.
Похоже MySQL не поддерживает серверные курсоры ADO. Даже если явно установить для _ConnectionPtr курсор adUseServer (что честно наследует _CommandPtr или _RecordsetPtr), то в дампе TCP/MySQL protocol видно, что MySQL передаёт клиенту весь набор данных, запрошенный или запросом или хранимой процедурой.
Оказалось также, что проблема с потерей соединения характерна для тех хранимых процедур, которые вызываются в цикле на клиенте. Такое впечатление, что это баг сервера MySQL, а не клиентской части. Интересно и то, что для ADO.NET 1.0.7 connector для MySQL аналогичных проблем не наблюдается пока.
Дрова для клиентского ODBC свежие? Попробуй поставить свежие дрова... 13.02.07 06:46  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
Кстати да. Только сейчас посмотрел - у них появился драйвер... 14.02.07 05:03  
Автор: void <Grebnev Valery> Статус: Elderman
<"чистая" ссылка>
Кстати да. Только сейчас посмотрел - у них появился драйвер ODBC 3.51.12. У меня стоял 3.51.
Попробую.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach