Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C++ Builder > Вызов хранимой процедуры через TADODataSet |
Автор: SATYR 6.7.2005, 16:42 | ||||
TADODataSet *ADODS; когда хранимая процедура "SEL_CORD5" имела два параметра все работало просто в лёт.
как только я ее модифицировал и добавил еще парочку
то при выполнении начало вылетать следующее исключение "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done." Подскажите вчем может быть причина? |
Автор: _hunter 6.7.2005, 16:57 |
толи в параметрах ошибся толи процедура кривая для начала вызовибез всяких внешних параметров: ADODS->CommandText="EXEC SEL_CORD5 ..."; посмотри что будет |
Автор: MaximNR 6.7.2005, 17:04 |
возможно какойнить триггер висит и он срабатывает уже после выполнения процедуры и воздействует на таблицу, возвращаемую процедурой? |
Автор: SATYR 6.7.2005, 17:09 |
Тригера не висит эт точно. В SQL Analyzer тоже исправно работает с тестовыми параметрами |
Автор: _hunter 6.7.2005, 17:24 |
а в коде? |
Автор: MaximNR 6.7.2005, 17:29 |
ну в общем, сообщение об ошибке можно перевести так, что "многошаговая операция вызвала ошибку. ПРоверьте каждый шаг" т.е. возможно, например, что процедура получила данные и вызвала какие-то изменения в чем-то, а это что-то при отображении содержит еще старые данные(допустим в каких-то контролах и т.п.). можно попробовать задисэйблить все контролы вначале операции, а потом их обновить и заенеблить. |
Автор: SATYR 7.7.2005, 08:39 |
Народ ещё вопрос не потеме. Случайно не подскажете в MS SQL есть какой-нить пошаговый отладчик кода? |
Автор: _hunter 7.7.2005, 10:31 |
в разделе по SQL и спроси... |
Автор: SATYR 7.7.2005, 10:50 |
Нашел в чем проблема.) В моем случае хранимка вообще не затрагивает ничего подобного контролам и не вносит никаких изменений ни куда только возвращает выбранный ряд. Если кому интересно: Похоже что здесь роль играет какого типа курсор испрользуется в TADODataSet. Если CyrsorLocation = clUseClient то все ок и всё работает если CyrsorLocation =clUseServer то генерится выше сказанное искл. Если не поможет то можно поменять CyrsorType. Либо комбонации этих двух св-в. Определено методом тыка ) |