Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблемы с многопоточным доступом к таблице (Paradox, BDE, Delphi [D4, D5, D6, D7, Paradox]


ki11er ©   (2003-12-01 15:27:00) 

Суть проблемы такая.
Нужно, чтобы из одного потока в таблицу добавлялись записи в то время как во втором потоке выполняется длинный запрос на чтение.
Однако при таком раскладе запрос на чтение возвращает одни и те же записи по несколько раз. В принципе, это не очень страшно, однако эти "фантомы" прячут под собой реальные записи, которые вообще не возвращаются.

Исходники теста (на дэлфях и на билдере) здесь:
http://www25.brinkster.com/alex99933/db_test.html

Спасибо.


ki11er   (2003-12-01 17:58:00) [1]

Отсортировано по времени.
Если присмотреться повнимательнее - найдешь одинаковые записи. В них все будет одинаково, даже первичный ключ.
Особенно заметно на больших таблицах (создай таблицу записей на 300000 - 500000)


Dred2k   (2003-12-01 17:37:00) [2]

> ki11er (01.12.03 15:27)

Только что скомпилил и запустил твою прогу - все живет. На фоне записи добавляются, запрос возвращает все больше записей при каждом вызове. Поле Primary Key не отсортировано почему-то - из-за этого "фантомы", что ли? (значения 1, 2, 3 ... находятся не в самом начале, к примеру)


ki11er   (2003-12-01 16:09:00) [3]

Все статьи на борланде (да и в других местах) уже прочитаны. Все сделано в соответствии с рекомендациями (взгляните на исходники). Однако глючит :(((


Сергей К.   (2003-12-01 15:57:00) [4]

Как мне кажется Борланд, рекомендует для таких случаев использовать на каждый запрос отделный объект TSession.

Где то на сайте Борланда была статья на данную тему


Наверх

Титульная страница Поиск, карта сайта Написать письмо