|
|
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
wadmanВсе таки не "пока не закрыта форма", а "пока не закрыто приложение". Да, извините за неточность wadmanИ нет строки db4.free. В общем, ищи соединение, которое остается открытым в потоке. Уже есть, ещё вчера поправил. Пока тестировал понял, что все соединения остаются открытыми,исключений нет. wadmanНу и лапшу-бы прибрать: вынести создание базы, транзакции и запроса и их уничтожение в отдельные процедуры. Сделаю, извините, учусь программировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 09:14:23 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
Gallemar, возьми мой пакет https://github.com/wadman/wthread/ в нем есть модуль wlog: для многопоточного логирования. И на каждый чих пиши в лог, так будет понятно, что на самом деле происходит в других потоках. Запустился поток - в лог, создал базу - в лог, дернул запрос - в лог, закрыл соединение - в лог, закончилось выполнение потока - в лог и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 09:19:37 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Что-то мне подсказывает, что эта строка должна быть вне цикла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 09:23:52 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
wadmanЧто-то мне подсказывает, что эта строка должна быть вне цикла. Что-то мне подсказывает, что это в соседнюю тему :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 09:46:22 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
wadmanИ на каждый чих пиши в лог, так будет понятно, что на самом деле происходит в других потоках. Запустился поток - в лог, создал базу - в лог, дернул запрос - в лог, закрыл соединение - в лог, закончилось выполнение потока - в лог и т.д. Пока сделал только на запуск потока. Из примера simpledemo взял процедуры, только в TForm1.AddLog вывод сделал в memo, запустил, в memo2 три строки вывелось: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 10:50:05 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
Ну и сам код: Код: pascal 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 10:53:08 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
wadmanзакончилось выполнение потока - в лог и т.д. ... не понял, в чем дело - в сад Gallemarа у меня в потоке формы не открываются, никакие. я говорил про главную форму :) Вот смотри (извини, схематично, потому что на коленке без D7) Код: pascal 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 10:54:11 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
и совсем не нужно из потока к форме обращаться, и свойство Terminated у потока есть своё и TForm1 - это класс, а не объект модуль потока лучше вообще не uses модуль формы Код: pascal 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. Код: pascal 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 11:37:54 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
Gallemar Код: pascal 1. 2. 3. Используешь мою компоненту (добавил TTask и выполняешь работу в его событии Execute)? Если нет, то это тебе не нужно. Для логирования нужно было использовать эти функции: Код: pascal 1. 2. 3. 4. Они пишут лог в файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 11:39:44 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
переписал на IBX :) аналогично - коннекты держатся до закрытия приложения. for Док - я осмыслю твой совет буду пробовать. for wadman - можешь подсказать как дальше сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 11:46:16 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
krapotkinсвойство Terminated у потока есть своё формально, да. Но лучше натянуть презерватив на огурец, а то случаи разные бывают :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 11:52:47 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
krapotkin Код: pascal 1. 2. 3. 4. 5. у него цикл одноразовый, поэтому твой совет в контексте его кода не имеет смысл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 11:53:59 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
Gallemarможешь подсказать как дальше сделать? Два варианта: 1. Допиливаешь свой вариант, но с применением моего логирования. 2. Переходишь на мой компонент. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 12:04:47 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
wadmanДва варианта Вот так и вербуют неопытных Игорь, выбирай первый. Я тебе давно советовал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 12:06:53 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
Док Игорь, выбирай первый. Я тебе давно советовал Что именно советовал? Логировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 12:36:12 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
В общем, я вижу примерно следующий план кода: Код: pascal 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. Открытие, закрытие соединения вынесено отдельно, для проверки версии kdv: 20685657 Если не поможет, то всегда может перенести обратно в поток. Не стоит на каждый чих создавать новое соединение, одного вполне хватит на один поток. Ну и плюсом соединение и выполнение запросов оберни try except и ошибки тоже пиши в лог. Может твои потоки валятся и потому соединение остается жить. PostToLog создаст файл с расширением .log и будет в него писать логи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 13:08:46 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
GallemarЛогировать? да. Не понятна логика ошибок, трудно/невозможно дебажить - логируй. И да, wadman прав: убери fini.free из цикла в секцию finally (перед уничтожением стринглиста) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 15:32:14 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
Доктрудно/невозможно дебажить - логируй. ДокGallemarЛогировать? да. Не понятна логика ошибок, трудно/невозможно дебажить - логируй. И да, wadman прав: убери fini.free из цикла в секцию finally (перед уничтожением стринглиста) Логирование исключений покажет очевидное: из-за исключения код не доходит до db3.connected:=False; Кстати, на db3.Close Сннова упадет (скорее всего), т.к. обычно это то же самое, только без проверки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 17:09:33 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
Короче, после создания объекта базы сделай try и в finally сделай Free - он автоматом вызовет и дисконнект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 17:12:58 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
Он=деструктор. Во всяком случае, в IBX так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 17:17:43 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
Gallemar, замени, пожалуйста, строчку Код: pascal 1. на Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 17:45:36 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
чччДGallemar, замени, пожалуйста, строчку Код: pascal 1. на Код: pascal 1. Неа. Специально так сделал,чтобы ты возмущался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 18:14:52 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
Gallemar, ну раз локальный коннект у тебя - то попробуй вызывать в конце fb_shutdown(). На 2.5 мне помогало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 18:26:09 |
|
||
|
Не срабатывает отключение от базы пока не закрыта форма.
|
|||
|---|---|---|---|
|
#18+
чччДGallemar, ну раз локальный коннект у тебя Не локальный. Это копия для тестов,в продуктиве коннект удаленный. Но совет учту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2017, 18:58:40 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39497958&tid=2041964]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
193ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 511ms |

| 0 / 0 |
