Форум: "Базы";
Текущий архив: 2003.12.23;
Скачать: [xml.tar.bz2];
ВнизПроблемы с многопоточным доступом к таблице (Paradox, BDE, Delphi Найти похожие ветки
← →
ki11er (2003-12-01 15:27) [0]Суть проблемы такая.
Нужно, чтобы из одного потока в таблицу добавлялись записи в то время как во втором потоке выполняется длинный запрос на чтение.
Однако при таком раскладе запрос на чтение возвращает одни и те же записи по несколько раз. В принципе, это не очень страшно, однако эти "фантомы" прячут под собой реальные записи, которые вообще не возвращаются.
Исходники теста (на дэлфях и на билдере) здесь:
http://www25.brinkster.com/alex99933/db_test.html
Спасибо.
← →
Сергей К. (2003-12-01 15:57) [1]Как мне кажется Борланд, рекомендует для таких случаев использовать на каждый запрос отделный объект TSession.
Где то на сайте Борланда была статья на данную тему
← →
ki11er (2003-12-01 16:09) [2]Все статьи на борланде (да и в других местах) уже прочитаны. Все сделано в соответствии с рекомендациями (взгляните на исходники). Однако глючит :(((
← →
Dred2k (2003-12-01 17:37) [3]> ki11er (01.12.03 15:27)
Только что скомпилил и запустил твою прогу - все живет. На фоне записи добавляются, запрос возвращает все больше записей при каждом вызове. Поле Primary Key не отсортировано почему-то - из-за этого "фантомы", что ли? (значения 1, 2, 3 ... находятся не в самом начале, к примеру)
← →
ki11er (2003-12-01 17:58) [4]Отсортировано по времени.
Если присмотреться повнимательнее - найдешь одинаковые записи. В них все будет одинаково, даже первичный ключ.
Особенно заметно на больших таблицах (создай таблицу записей на 300000 - 500000)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.12.23;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.013 c