Вниз
Скачать: CL | DM;

Проблемы с многопоточным доступом к таблице (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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
3-75088
Sacred
2003-11-30 00:28
2003.12.23
Автозаполнение!


8-75272
DeadMeat
2003-08-24 23:40
2003.12.23
Звук1+Звук2=Звук2


1-75260
ZHK
2003-12-08 15:52
2003.12.23
Как поймать стандартный ДОС-овский вывод?


14-75339
Думкин
2003-11-29 05:19
2003.12.23
C днем рождения! 29 ноября.


14-75314
Учимся
2003-12-01 19:47
2003.12.23
Сформировать массив и упорядочить




   Наверх