информационная безопасность
без паники и всерьез
 подробно о проекте
Все любят медПортрет посетителяСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Вредоносный релиз LiteLLM 
 Мощные индийские ключи 
 Срочные патчи для критических уязвимостей... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[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





Рейтинг@Mail.ru


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