|
CursorAdapter (глюк с AllowSimultaneousFetch = .T.)
|
|||
---|---|---|---|
#18+
Всем привет! Словил очередной глюк от CA VFP9 + MySql Цитирую чьи-то рекомендации (нарыл где-то на форумах): "Я так понимаю, что вы используете один ODBC statement handle для всех CursorAdapter-ов. VFP последовательно вызывает для них CursorFill метод, который, как ему и положено, должен выйти по ошибке если statement handle занят. Если FetchSize=100 и результат содержит 100 или более записей, то CursorFill метод скачает первые 100 записей и остановится, оставив statement handle в занятом состоянии. CursorFill для следующих CursorAdapter-ов выполниться не сможет. Одно из решений проблемы - установить FetchSize=-1, тогда CursorFill скачает все записи и освободит statement handle, но при больших выборках форма может открываться медленно. Второе решение - оставить FetchSize=100, но использовать один ODBC connection handle с разными statement handles для всех CursorAdapter-ов. Для этого нужно первый раз вызвать SQLCONNECT/SQLSTRINGCONNECT передав .T. в качестве последнего параметра. Полученный nStatementHandle можно использовать для одного CursorAdapter-а, а для других получить новые, вызывая SQLCONNECT(nStatementHandle). Так же нужно установить AllowSimultaneousFetch=.T. для всех CursorAdapter-ов. Форма будет открываться быстро даже для очень больших выборок, но последующая подкачка записей будет немного медленнее, чем с AllowSimultaneousFetch=.F." Теперь о наболевшем. Это мои настройки, следуя рецепту из "Второе решение - " Код: sql 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.
При .AllowSimultaneousFetch = .T. просмотр полученного курсора дает какую-то ерунду. Задвоенные строки, помимо значения столбца еще какие-то левые символы, мусор При .AllowSimultaneousFetch = .F. все четко! Только закончил воевать с .usetransactions из-за проблем с dll и опять, на тебе. Версии моих библиотек. VFP9RENU.DLL - 9.0.0.5815 vfp9r.dll - 9.0.0.7423 vfp9t.dll - 9.0.0.5815 msvcr71.dll - 7.10.3052.4 gdiplus.dll - 5.2.6001.22319 Возможно проблемы в них? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 16:25 |
|
|
start [/forum/search_topic.php?author=%D0%A3%D0%B5%D0%B1+%D0%B4%D0%B5%D0%B2%D0%B5%D0%BB%D0%BE%D0%BF%D1%8B%D1%80%D1%8C&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 822ms |
total: | 969ms |
0 / 0 |