Конференции:  3D графика Delphi Игры Бизнес Потрепаться PHP&MySQL QuarkXPress Turbo Pascal WEB-дизайн 
<<<    Конференция "Delphi"   >>>
ki11er [2003-12-01 14:49:55]
Проблемы с многопоточным доступом (Paradox, BDE, Delphi)
Суть проблемы такая.
Нужно, чтобы из одного потока в таблицу добавлялись записи в то время как во втором потоке выполняется длинный запрос на чтение.
Однако при таком раскладе запрос на чтение возвращает одни и те же записи по несколько раз. В принципе, это не очень страшно, однако эти "фантомы" прячут под собой реальные записи, которые вообще не возвращаются.

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

Спасибо.

Старый еврей [2003-12-01 22:10:21]    [1]
Перед запросом делай Table1.Open;
После запроса Table1.Close;
(при чтении).

А так как ты хочешь (добавление во время выборки) и не получится, потому что датасет старый (как и я). :)

ki11er [2003-12-02 14:35:50]    [2]
Какой, блин, Table1? Ты бы посмотрел что ли прежде, чем советовать. Там через TQuery все сделано.

Старый еврей [2003-12-02 20:41:07]    [3]
А какая разница? Смысл остается прежним. :)

ki11er [2003-12-03 12:13:43]    [4]
ну-ну 8-(

Старый еврей [2003-12-03 23:36:12]    [5]
Серьезно, насчет одновременного чтения и добавления, точнее чтения одновременного добавления, можещь забыть надолго. Нету пока таких баз. Или придумай свою. Я бы такой и сам пользовался. :)

ki11er [2003-12-04 11:26:55]    [6]
8-DDD

Да ну?
А ты не слышал про всякие там эскюэли, интербэйзы, файрберды, и не побоюсь этого слова ораклы?
Бери и пользуйся ;-)

8-DDD

YuRock [2003-12-04 13:16:28]    [7]
Я не знаю, как в парадоксе, но в Interbase (используя родные компоненты, которые есть в Delphi 6) можно было бы сделать очень просто: для записи сделать отдельную транзакцию и перед записью ее открывать, после - закрывать.
Тогда будет все нормально - пока не будет коммита - никаких записей не прочтешь.

<?> [2005-11-26 22:44:01]    [8]
Удалено модератором

[•‹]%2F%2Fya.ru%2Flogo.gif [2005-11-26 22:51:51]    [9]
Удалено модератором


ПОДПИСАТЬСЯ НА ТЕМУ

E-mail
7+8?



приветя улыбаюсьхадаподмигиваюя тащусьмое почтениесчастливоцелуюбухаемужас
не понялплачуфупечальзлойстесняюсьсогласеннетгыкурю
суперязыкмузонпыворыдаю


Ваше имя: 
     Осталось: 

 

Допускается форматирование текста:
[•B]полужирный[B•] [•I]наклонный[I•] [•U]подчеркнутый[U•] [•‹]URL картинки[›•].
Для кода программ используйте [•¤] код программы [¤•]
Количество открывающих и закрывающих тэгов форматирования текста должно быть равным, иначе форматирование не осуществится.


Adelavida Link       Рейтинг@Mail.ru