Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];

Вниз

Как корректно защититься от краха Paradox-баз   Найти похожие ветки 

 
TheEd   (2004-12-14 21:37) [0]

Господа, вопрос: есть БД на Paradox"е, с ней работают примерно 10 юзеров в сети. Проблема в том, что время от времени нарушается целостность базы, и она перестаёт откываться. Как обычно поступают в таких случаях (копировать ручками - это понятно, я имею в виду откат во время работы программы), ну к примеру:


begin
 try
   Application.Initialize;
   Application.CreateForm(TfmMain, fmMain);
   Application.Run;
 except
   // выполняем откат, но блин так,
   // что бы это не коснулось изменений, сделанных
   // другими юзерами!
 end;
end.


Заранее спасибо!


 
Anatoly Podgoretsky ©   (2004-12-14 21:50) [1]

Никак


 
Sergey13 ©   (2004-12-15 09:18) [2]

>Как корректно защититься от краха Paradox-баз
Не использовать Парадокс. Не работающая база - стабильная база. 8-)


 
msguns ©   (2004-12-15 10:51) [3]

Написать свой "сервер", работы с парадокс-базой, в нем реализовать транзакции и все такое..


 
Anatoly Podgoretsky ©   (2004-12-15 12:16) [4]

msguns ©   (15.12.04 10:51) [3]
Ну это уже будет трехзвенка, а не Парадокс


 
TheEd   (2004-12-21 20:40) [5]

Неуж-то в парадоксе тупик?
Просто уже много наделано, не хогчется переколбашивать на другие платформы. Тогда подскажите что лучше?

зы: Оракл пробовал - тёмный лес, хотя слышал что вестчь толковая, для начинающего юзверя посоветуйте.


 
Kuusiniemi   (2004-12-22 09:33) [6]

"10 юзеров в сети" и Oracle - ядерной ракетой по воробьям :) Interbase и клоны попробуйте.


 
msguns ©   (2004-12-22 10:38) [7]

Хорошая "профилактика" сбоев парадокс-баз - отказаться от вторичных индексов. Слеты много реже и гораздо быстрее лечатся.


 
Reindeer Moss Eater ©   (2004-12-22 10:43) [8]

Лучший способ угобить Парадокс при многопользовательском режиме - создать таблицу с автоинкрементным полем.


 
Vemer ©   (2004-12-23 00:45) [9]

Присоединяюсь к Kuusiniemi: FireBird - самое то. Сам год юзаю успешно.


 
TheEd   (2004-12-23 22:45) [10]


> Хорошая "профилактика" сбоев парадокс-баз - отказаться от
> вторичных индексов. Слеты много реже и гораздо быстрее лечатся.

Про индексы понял - уже не раз они сбоили.

> Лучший способ угобить Парадокс при многопользовательском
> режиме - создать таблицу с автоинкрементным полем.

Про автоинкрементное поле в принципе тоже секу - видно у нескольких юзеров одно Value получается при вставке или типа того, но без них сложно организовать связи между таблицами, либо вручную вставлять значения... Если можно поподробнее механизм угробления Парадокса (вот уж воистину - парадокс) автоинкрементными полями. И на кой они (и индексы тоже) тогда нужны если гробят базы?


 
Anatoly Podgoretsky ©   (2004-12-24 02:04) [11]

Не индексы гробят базу, а Парадокс


 
msguns ©   (2004-12-24 10:49) [12]

Автоикремент в парадоксе можно "проэмулировать":
Клиент в цикле выполняет 2 запроса:
 - Определение макс.значения колонки ключа
 - Пытается вставить запись с этим значением, если получается, то значение возвращается и клиент вместо вставки делает коррекцию
Если нет (кто-то в этом момент уже вставил запись с таким ключом), то цикл повторяется

Тоже не сахар, но все ж какое-то решение. В свое время при разработке проектов в парадоксе вообще не юзал суррогатные ключи, только "нативные".


 
Sergey13 ©   (2004-12-24 10:54) [13]

2[10] TheEd   (23.12.04 22:45)
>И на кой они (и индексы тоже) тогда нужны если гробят базы?
Не оправданный выбор средства решения задачи (Парадокс для 10 сетевых пользователя), ИМХО, более виновен в гроблении базы.


 
msguns ©   (2004-12-24 11:51) [14]

>Sergey13 ©   (24.12.04 10:54) [13]
>И на кой они (и индексы тоже) тогда нужны если гробят базы?
Не оправданный выбор средства решения задачи (Парадокс для 10 сетевых пользователя), ИМХО, более виновен в гроблении базы.

Индексы в десятки, а то и сотни раз ускоряют обмен данными с таблицами.
По поводу выбора. Справедливо при проектировании новых баз. А что делать со старыми, состоящими из сотен таблиц и тысяч кем-то давно написанных алгоритмов, в которых приходится ковыряться ?


 
Sergey13 ©   (2004-12-24 12:05) [15]

2[14] msguns ©   (24.12.04 11:51)
>По поводу выбора. Справедливо при проектировании новых баз. А что делать со старыми

1. Я и не говорил, что смена БД - это легко.
2. Если используется Парадокс и БДЕ, то замена Парадокса на ИБ например, при сохранении БДЕ, не вызовет коренную ломку приклады, ИМХО.
3. Если задача писалась на 1 юзера, а используется 10, то не повод ли это для переделки. Ты же не будешь грузить на Жигуль бетонную плиту.
4. У меня нет информации, что это тот случай, когда "из сотен таблиц и тысяч кем-то давно написанных алгоритмов". 8-)


 
msguns ©   (2004-12-24 12:23) [16]

Ладно, давай не будем гадать, ладушки ?


 
Fay ©   (2004-12-25 04:03) [17]

Как обычно. Главная сложность - "не хочется".
Но почему-то всем потом хочется поплакаться на форуме - "Ах, какой он гадкий, этот Рагадох 8(. Чё делать? А то не хочется ...".



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.038 c
3-1103872708
Mid
2004-12-24 10:18
2005.01.30
Проблема с кирилицей в QReport


1-1106041657
hgd
2005-01-18 12:47
2005.01.30
Ошибка на CoInitialize;


3-1103114467
Mishenka
2004-12-15 15:41
2005.01.30
Почему не сохраняется минимальное значение?


1-1105885062
Piter
2005-01-16 17:17
2005.01.30
Что означают параметры в директивах


11-1089101164
Nox
2004-07-06 12:06
2005.01.30
KOLEdb: работа с несколькими таблицами





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский