Если какие-то скрытые грабли при использовании байндинг к рекордсет для MySQL?
Проблема в том, что для совершенно вменяемых вызовов хранимых процедур MySQL случается экзепшн-ы. Постоянно! ODBC лог (на клиенте) пишет, что соединение с сервером потеряно. В тоже время, error и qury лог на mysql пишет, что клиент получил ошибку чтения данных и сервер сделал аборт соединению. com_error же пишит в экзепшн обычные для M$ просто невменяемые вещи, типа нет ресурсов.
Интересно, что если заменить вызов хранимых процедур на текст соответствующих запросов, то до какого-то момента работает. Особено плохо тем процедурам, где в теле запросов находятся union, или подзапросы. Может не в IADORecordBinding дело?
Буду благодарен за помощь.
ПС. Курсоры - серверные, таймауты по умолчанию. В принципе, хотя запросы и тяжёлые в процедурах, но время исполнения (в SQL browser) не более 300 ms.
+ IADORecordBinding = активно неработающее приложение.
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
Похоже MySQL не поддерживает серверные курсоры ADO. Даже если явно установить для _ConnectionPtr курсор adUseServer (что честно наследует _CommandPtr или _RecordsetPtr), то в дампе TCP/MySQL protocol видно, что MySQL передаёт клиенту весь набор данных, запрошенный или запросом или хранимой процедурой.
Оказалось также, что проблема с потерей соединения характерна для тех хранимых процедур, которые вызываются в цикле на клиенте. Такое впечатление, что это баг сервера MySQL, а не клиентской части. Интересно и то, что для ADO.NET 1.0.7 connector для MySQL аналогичных проблем не наблюдается пока.
Оказалось также, что проблема с потерей соединения характерна для тех хранимых процедур, которые вызываются в цикле на клиенте. Такое впечатление, что это баг сервера MySQL, а не клиентской части. Интересно и то, что для ADO.NET 1.0.7 connector для MySQL аналогичных проблем не наблюдается пока.