|
|
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
Бьюсь несколько дней, не могу понять, в чем дело. Следующий код прекрасно работает, если все хорошо. Но если в процессе выполнения функций ADO возникает exception, по завершении функции main() вылетает сообщение: --------------------------- Microsoft Visual C++ --------------------------- Unhandled exception in ADO.exe: 0xC0000005: Access Violation. --------------------------- OK --------------------------- Для возникновения exception достаточно изменить (LOCAL) в строке pConnection->ConnectionString на несуществующее имя компьютера. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2004, 11:41 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
Может кто-нибудь проверить у себя выполнение этого кода? Неужели у меня одного он падает? Программа практически совпадает с примерами из MSDN. Пожалуйста! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2004, 14:10 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
Все нормально - не падает VC++ 6.0 +SP5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2004, 14:16 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
olkВсе нормально - не падает А если заменить Код: plaintext на Код: plaintext ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2004, 14:22 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
Нормально VS .NET 2003 Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2004, 14:41 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
Попробуй поставить последний MDAC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2004, 15:12 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
ZrenByНормально VS .NET 2003 то есть при выходе из main() "Access violation" не вылез? TracerПопробуй поставить последний MDAC Стоит MDAC 2.8, VC 6.0 SP5, MS SQL Server 2000 Developer Edition SP3a ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2004, 15:16 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
VC 6.0 SP3, MDAC 2.7, Win2000 SP2, MSSQL 2000 SP2 Всё работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2004, 15:30 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
Кстати мысля, Попробуй Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. заменить на Код: plaintext 1. 2. 3. 4. 5. 6. 7. Возможно дело в вызове CoUninitialize до деструктора твоих ADO,шных оьъектов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2004, 15:34 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
Tracer Возможно дело в вызове CoUninitialize до деструктора твоих ADO,шных оьъектов Попробовал. Исключение ловится первым catch, то есть проблема не в деструкторе. В основной программе, в которой были замечены проблемы, действия с ADO производятся в функции, декларированной так: Код: plaintext 1. Так вот после вызова функции ADO, вызывающей исключение, pAppInfo получает некоторое новое значение, то есть pConnection->Open при возникновении в нем исключение портит стек. Или я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2004, 15:41 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
авторТак вот после вызова функции ADO, вызывающей исключение, pAppInfo получает некоторое новое значение, то есть pConnection->Open при возникновении в нем исключение портит стек. Или я не прав? Адназначна (с) Всё таки советую переставить MDAC, попробуй перейти на 2.7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2004, 15:49 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
TracerВсё таки советую переставить MDAC, попробуй перейти на 2.7 MDAC на понижение не ставится :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2004, 16:30 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
Посмотри ещё в MSDN Q173645 мож поможет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2004, 16:42 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
TracerПосмотри ещё в MSDN Q173645 Читал, попробовал - не помогает. К тому же там для OLE DB 1.1, а я 2.x использую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2004, 17:41 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
Скачай с http://www.microsoft.com/data/download.htm MDAC Utility: Component Checker Version 2.7 вроде он поможет деинсталлировать MDAC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2004, 18:20 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
2olk: ZrenBy: Tracer: Немного поменял код, перенес работу с ADO в функцию. Пожалуйста, скомпилируйте у себя проект в debug и release версиях. И вышлите мне весь проект (*.cpp, *.dsp, *.exe) на ALegkikh_at_yandex.ru Если не сложно. Заранее спасибо. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 10:44 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
Вчера, в не помню какой книженции по С++, (мимоходом полистал) видел странную конструкцию, причем автор утверждает (просто утверждает), что это подавляет ошибку связанную с адресацией (не понятно какую) ??? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Может кто-нибудь прокоментировать эту конструкцию ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 10:57 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
Я может. Скобки ограничивают область жизни. Возможно так... У меня, кстати, тоже были проблемы с. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 13:47 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
Я еще встречал вот такую интересную конструкцию Код: plaintext 1. 2. 3. объявляется глобально в файле с функцией main ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 14:43 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
Я победил! В папке %ProgramFiles%\Microsoft Visual Studio\VC98\Bin есть файл с2.dll. Как я выяснил, c2.dll идет с Processor Pack. У меня стоял Processor Pack 5, в котором c2.dll имеет версию 13.0.9044.0. При замене файла c2.dll на более раннюю версию, проблемы исчезают. Например, на Processor Pack 4, в котором c2.dll имеет версию 13.0.8943.0. Всем спасибо за участие и помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2004, 14:18 |
|
||
|
Падает ADO при exception
|
|||
|---|---|---|---|
|
#18+
Осознал. Похоже действительно область ограничивыют. Причём как снизу, так и сверху. Не, даже не так... Вот как: Открывающая скобка, возможно загоняет в стек все внескобковые переменные - видимо мешают. А! Вот ещё на самом деле как. ::CoInitialize(NULL); - возможно создаёт и не убивает что-то в текущей области видимости. Наличие скобок даёт возможность загнать весь этот мусор в стек, который потом подохнет при выходе из скобок. Тоже самое и с ::CoUninitialize(); (Ногами не пинать! ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2004, 14:57 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32373585&tid=2035532]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 363ms |

| 0 / 0 |
