![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как корректно защититься от краха Paradox-баз [Paradox]
TheEd © (2004-12-14 21:37:00)Господа, вопрос: есть БД на Paradox'е, с ней работают примерно 10 юзеров в сети. Проблема в том, что время от времени нарушается целостность базы, и она перестаёт откываться. Как обычно поступают в таких случаях (копировать ручками - это понятно, я имею в виду откат во время работы программы), ну к примеру:
begin
try
Application.Initialize;
Application.CreateForm(TfmMain, fmMain);
Application.Run;
except
// выполняем откат, но блин так,
// что бы это не коснулось изменений, сделанных
// другими юзерами!
end;
end.
Заранее спасибо!
Fay (2004-12-25 04:03:00) [1]Как обычно. Главная сложность - "не хочется".
Но почему-то всем потом хочется поплакаться на форуме - "Ах, какой он гадкий, этот Рагадох 8(. Чё делать? А то не хочется ...".
msguns (2004-12-24 12:23:00) [2]Ладно, давай не будем гадать, ладушки ?
Sergey13 (2004-12-24 12:05:00) [3]2[14] msguns © (24.12.04 11:51)
>По поводу выбора. Справедливо при проектировании новых баз. А что делать со старыми
1. Я и не говорил, что смена БД - это легко.
2. Если используется Парадокс и БДЕ, то замена Парадокса на ИБ например, при сохранении БДЕ, не вызовет коренную ломку приклады, ИМХО.
3. Если задача писалась на 1 юзера, а используется 10, то не повод ли это для переделки. Ты же не будешь грузить на Жигуль бетонную плиту.
4. У меня нет информации, что это тот случай, когда "из сотен таблиц и тысяч кем-то давно написанных алгоритмов". 8-)
msguns (2004-12-24 11:51:00) [4]>Sergey13 © (24.12.04 10:54) [13]
>И на кой они (и индексы тоже) тогда нужны если гробят базы?
Не оправданный выбор средства решения задачи (Парадокс для 10 сетевых пользователя), ИМХО, более виновен в гроблении базы.
Индексы в десятки, а то и сотни раз ускоряют обмен данными с таблицами.
По поводу выбора. Справедливо при проектировании новых баз. А что делать со старыми, состоящими из сотен таблиц и тысяч кем-то давно написанных алгоритмов, в которых приходится ковыряться ?
Sergey13 (2004-12-24 10:54:00) [5]2[10] TheEd (23.12.04 22:45)
>И на кой они (и индексы тоже) тогда нужны если гробят базы?
Не оправданный выбор средства решения задачи (Парадокс для 10 сетевых пользователя), ИМХО, более виновен в гроблении базы.
msguns (2004-12-24 10:49:00) [6]Автоикремент в парадоксе можно "проэмулировать":
Клиент в цикле выполняет 2 запроса:
- Определение макс.значения колонки ключа
- Пытается вставить запись с этим значением, если получается, то значение возвращается и клиент вместо вставки делает коррекцию
Если нет (кто-то в этом момент уже вставил запись с таким ключом), то цикл повторяется
Тоже не сахар, но все ж какое-то решение. В свое время при разработке проектов в парадоксе вообще не юзал суррогатные ключи, только "нативные".
Anatoly Podgoretsky (2004-12-24 02:04:00) [7]Не индексы гробят базу, а Парадокс
TheEd (2004-12-23 22:45:00) [8]
> Хорошая "профилактика" сбоев парадокс-баз - отказаться от
> вторичных индексов. Слеты много реже и гораздо быстрее лечатся.
Про индексы понял - уже не раз они сбоили.
> Лучший способ угобить Парадокс при многопользовательском
> режиме - создать таблицу с автоинкрементным полем.
Про автоинкрементное поле в принципе тоже секу - видно у нескольких юзеров одно Value получается при вставке или типа того, но без них сложно организовать связи между таблицами, либо вручную вставлять значения... Если можно поподробнее механизм угробления Парадокса (вот уж воистину - парадокс) автоинкрементными полями. И на кой они (и индексы тоже) тогда нужны если гробят базы?
Vemer (2004-12-23 00:45:00) [9]Присоединяюсь к Kuusiniemi: FireBird - самое то. Сам год юзаю успешно.
Reindeer Moss Eater (2004-12-22 10:43:00) [10]Лучший способ угобить Парадокс при многопользовательском режиме - создать таблицу с автоинкрементным полем.
msguns (2004-12-22 10:38:00) [11]Хорошая "профилактика" сбоев парадокс-баз - отказаться от вторичных индексов. Слеты много реже и гораздо быстрее лечатся.
Kuusiniemi (2004-12-22 09:33:00) [12]"10 юзеров в сети" и Oracle - ядерной ракетой по воробьям :) Interbase и клоны попробуйте.
TheEd (2004-12-21 20:40:00) [13]Неуж-то в парадоксе тупик?
Просто уже много наделано, не хогчется переколбашивать на другие платформы. Тогда подскажите что лучше?
зы: Оракл пробовал - тёмный лес, хотя слышал что вестчь толковая, для начинающего юзверя посоветуйте.
Anatoly Podgoretsky (2004-12-15 12:16:00) [14]msguns © (15.12.04 10:51) [3]
Ну это уже будет трехзвенка, а не Парадокс
msguns (2004-12-15 10:51:00) [15]Написать свой "сервер", работы с парадокс-базой, в нем реализовать транзакции и все такое..
Sergey13 (2004-12-15 09:18:00) [16]>Как корректно защититься от краха Paradox-баз
Не использовать Парадокс. Не работающая база - стабильная база. 8-)
Anatoly Podgoretsky (2004-12-14 21:50:00) [17]Никак