Это вопрос к автору компонента.
------------ Дoбавленo в 00.06:
А может в DS_SQLite точка не помешает onClose ?
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
|
|||
карма: 25 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Tad писал(а): Это вопрос к автору компонентаЯ автор, дальше что Или тебе не известно, что движок SQLite имеет свои потоки и свою очередь команд, и когда он там закончит работать с базой, только ему известно, хотя, для тебя он будет свободени, и получишь ты на выходе свое событие onClose, а у себя команду он поставит в очередь, и не факт, что он к этому времени освободит файл базы. |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Ну и не факт, что совет с таймером на пол секунды всегда хватит.
------------ Дoбавленo в 01.34: А вот это и есть таймер.
|
|||
карма: 25 |
| ||
Голосовали: | miver |
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Ну, при _prop_WaitClose=True это, действительно может сработать. Давай добавим, хуже не будет
------------ Дoбавленo в 01.41: nesco писал(а): вообще лишнееНе, не надо убирать, это не лишнее, это просьба Dilm-ы -- по-умолчанию оставить без ожидания завершения. |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Да, убирать нельзя. При доступе к БД нескольких пользователей - будут тормоза.
|
|||
карма: 25 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Добавил
|
|||
карма: 22 |
| ||
Голосовали: | miver |
Ответов: 758
Рейтинг: 112
|
|||
nesco писал(а): ДобавилМожно ссылку на обновленный элемент Обновляюсь через SVN - пишет, что новых элементов нет |
|||
карма: 1 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
miver писал(а): Обновляюсь через SVN - пишет, что новых элементов нетСтранно, я его точно залил. У меня в обновлении с SVN точка onClose есть. А ты в скрытых точках смотрел На всякий случай ссылка [svn]DS_SQLite.pas[/svn] |
|||
карма: 22 |
|
Ответов: 758
Рейтинг: 112
|
|||
nesco писал(а): Странно, я его точно залил. У меня в обновлении с SVN точка onClose есть. А ты в скрытых точках смотрел На всякий случай ссылка Да, смотрел, спасибо |
|||
карма: 1 |
|
Ответов: 758
Рейтинг: 112
|
|||
Проблема осталась, причем DS_SQLite просто не закрывает БД
Если поставить кнопку, то все работает замечательно (жмем закрыть и БД закрывается) code_14770.txt Если ставим обратную связь то не работает (даже с задержкой в 0,5 сек) code_14771.txt |
|||
карма: 1 |
| ||
файлы: 2 | code_14770.txt [3KB] [330], code_14771.txt [3KB] [354] |
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
miver писал(а): даже с задержкой в 0,5 секЯ про таймер говорил а не про Sleep. Надо выключать базу из другой очереди событий, а не из той же самой Ты думаешь почему вот это работает miver писал(а): Если поставить кнопку, то все работает замечательноВсе по той же причине: мы удаляем базу из другой очереди событий Кстати, это необходимо использовать, если хочешь удалять мультик, на него распространяется тот же принцип |
|||
карма: 22 |
| ||
Голосовали: | miver |
Ответов: 758
Рейтинг: 112
|
|||
nesco писал(а): Я про таймер говорил а не про Sleep. Да уж невнимательный но они так похожи С таймером работает nesco писал(а): Надо выключать базу из другой очереди событий, а не из той же самойДля себя не совсем понимаю термин "другой очереди событий" Пожалуйста объясни для тех кто в танке, желательно с примером, как в программе по заданному алгоритму возникнет "другая очередь событий" Какая разница между событиями таймера и Sleep (проверял таймер с нулевой итерацией - работает ) |
|||
карма: 1 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
miver писал(а): проверял таймер с нулевой итерациейТаймер с полностью нулевой итерацией в системе не существует, это раз. В данном случае, под очередью событий понимается цепочка действий от начала выполнения опреации до окончания, когда упраление передается системе. Запуская таймер, ты выпоняешь команду запуска и переходишь к дальнейшей очереди операций в одной цепи, но таймер ждет окончания выполнения предыдущей очереди, даже, когда у него есть некоторая, установленная задержка, те, данный тип таймера не сработает, пока не закончится предыдущая очередь и управление не передасться системе. Элемент же Sleep, в данном исполнении, дает задержку события, но не освобождает очередь, а значит, по окончанию задержки цепь событий продолжиться до полного окончания. Пример, да самый простой -- Hub, на следующих точках событие не появится, пока не закончатся все последовательные операции, подключенные к первой точке. Но следующую точку Hub-a, в данном случае использовать не получится, так как его входные точки есть цепи предыдущих операций. |
|||
карма: 22 |
| ||
Голосовали: | miver |
Ответов: 758
Рейтинг: 112
|
|||
новый DS_SQLite не компилится при Delphi with SQLite_Obj
HiAsm\Elements\delphi\code.\hiMainForm_159BF94.pas(335) Error: Undeclared identifier: '_event_onClose'
|
|||
карма: 1 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
miver, обновить надо и *.ini и *.pas. У тебя их несоответствие
------------ Дoбавленo в 02.51: Да, кстати, откуда у тебя miver писал(а): Delphi with SQLite_Objв оригинале его нет Если это моя строка компиляции (из wiki, например), то несответсвие происходит в основных папках code и conf текущего пакета. Оригинальный компилятор читает компонент из твоей папки проекта |
|||
карма: 22 |
| ||
Голосовали: | miver |