Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
VC++: OLEDB error
|
|||
|---|---|---|---|
|
#18+
Есть приложение, нормально компилируется под Win32 и работает. Вызывает сторед процедуру и получает из нее значения. Пытаюсь собрать под x64, на вызове процедуры - до сервера вызов не доходит, падает еще в atldbcli.h , пишет Код: 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. Unhandled exception at 0x00007fff3fbe3f5a in app.exe: 0xC0000005: Access violation reading location 0x000000031006661e. Где искать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2017, 18:51 |
|
||
|
VC++: OLEDB error
|
|||
|---|---|---|---|
|
#18+
Ролг ХупинГде искать? Адрес 0x00007fff3fbe3f5a и далее вверх по стэку разве не самоочевидное место?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2017, 18:58 |
|
||
|
VC++: OLEDB error
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovРолг ХупинГде искать? Адрес 0x00007fff3fbe3f5a и далее вверх по стэку разве не самоочевидное место?.. не совсем очевидное msvcrt.dll!00007fff3fbe3f5a() [Frames below may be incorrect and/or missing, no symbols loaded for msvcrt.dll] msdatl3.dll!00007fff1759abd0() sqloledb.dll!00007ffefa2c8f4e() sqloledb.dll!00007ffefa2c6d87() sqloledb.dll!00007ffefa2c8cc6() sqloledb.dll!00007ffefa263c30() sqloledb.dll!00007ffefa264f76() sqloledb.dll!00007ffefa2623ef() sqloledb.dll!00007ffefa274be0() sqloledb.dll!00007ffefa26c7db() > sqloledb.dll!00007ffefa26e789() myfunction() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2017, 19:57 |
|
||
|
VC++: OLEDB error
|
|||
|---|---|---|---|
|
#18+
Кстати, можно ли как-то включить лог оледб для приложения? может там будут какие подробности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2017, 19:58 |
|
||
|
VC++: OLEDB error
|
|||
|---|---|---|---|
|
#18+
Ролг Хупинmyfunction() Ну вот и смотри какой из указателей в твоей myfunction() примерно равен 0x000000031006661e. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2017, 21:01 |
|
||
|
VC++: OLEDB error
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovРолг Хупинmyfunction() Ну вот и смотри какой из указателей в твоей myfunction() примерно равен 0x000000031006661e. Я ставлю сюда точку и вижу, что разруха здесь Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2017, 11:42 |
|
||
|
VC++: OLEDB error
|
|||
|---|---|---|---|
|
#18+
Ролг Хупинвижу, что разруха здесь "Разруха начинается в головах, а не туалетах." (с) Повторяю ещё раз, медленно: смотри какой из указателей в этом месте примерно равен 0x000000031006661e. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2017, 12:28 |
|
||
|
VC++: OLEDB error
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovРолг Хупинвижу, что разруха здесь "Разруха начинается в головах, а не туалетах." (с) Повторяю ещё раз, медленно: смотри какой из указателей в этом месте примерно равен 0x000000031006661e. да понял я, понял (ц) ищу при подготовке выполнения процедуры, при установке параметров, использую такой хелпер, он в 32бит работает, может он в 64бит пробивает по памяти? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2017, 13:26 |
|
||
|
VC++: OLEDB error
|
|||
|---|---|---|---|
|
#18+
И такой класс, в предыдущем коде используется Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2017, 13:31 |
|
||
|
VC++: OLEDB error
|
|||
|---|---|---|---|
|
#18+
Ролг Хупинпри подготовке выполнения процедуры, при установке параметров, использую такой хелпер, он в 32бит работает, может он в 64бит пробивает по памяти? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. У lData должен быть тип DBLENGTH. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 09:25 |
|
||
|
VC++: OLEDB error
|
|||
|---|---|---|---|
|
#18+
Коваленко ДмитрийРолг Хупинпри подготовке выполнения процедуры, при установке параметров, использую такой хелпер, он в 32бит работает, может он в 64бит пробивает по памяти? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. У lData должен быть тип DBLENGTH. То есть этот подозрительный DBTYPE_I4 надо заменить на DBLENGTH? Не сам же тип lData ? HRESULT SetLongData(TheBIND *pBind,long lData,long *plOffset) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 13:53 |
|
||
|
VC++: OLEDB error
|
|||
|---|---|---|---|
|
#18+
Ролг ХупинКоваленко Дмитрийпропущено... У lData должен быть тип DBLENGTH. То есть этот подозрительный DBTYPE_I4 надо заменить на DBLENGTH? Не сам же тип lData ? HRESULT SetLongData(TheBIND *pBind,long lData,long *plOffset[/s]) Эта функция должна работать и в 32 бит, и в 64 бит варианте приложения. DBLENGTH (=ULONGLONG) заменит long в обехи версиях при заталкивании его как массив байтов в бинд? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 13:59 |
|
||
|
VC++: OLEDB error
|
|||
|---|---|---|---|
|
#18+
Ролг ХупинРолг Хупинпропущено... То есть этот подозрительный DBTYPE_I4 надо заменить на DBLENGTH? Не сам же тип lData ? HRESULT SetLongData(TheBIND *pBind,long lData,long *plOffset[/s]) Эта функция должна работать и в 32 бит, и в 64 бит варианте приложения. DBLENGTH (=ULONGLONG) заменит long в обехи версиях при заталкивании его как массив байтов в бинд? Это я затупил, думая, что lData это длина данных. Так, давай вернемся к исходному коду: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. В 64-битной сборке, DBSTATUS - 64-битное число. По хорошему, чтобы не возникало проблем с выравниванием данных, лучше сначала записать статус, а потом данные. Это при условии, что начальное значение (*plOffset) делится на sizeof(DBSTATUS). Если не делится, сделать так чтобы делилось - то есть надо в m_Datas набить нужное количество нулей. Я так понимаю значение (*plOffset) совпадает с количество байт в m_Datas? Если да, то зачем нужно это дублирование? Я бы от этого plOffset избавился. Как-то вот так: Код: 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. В остальном, если не напрягаться насчет качества в целом, вроде все в норме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 19:40 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39411469&tid=2018263]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
169ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 281ms |

| 0 / 0 |
