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

Вниз

БД   Найти похожие ветки 

 
Alex8   (2008-05-03 17:39) [0]

Уважаемые мастера !

  Я держу разрабатываемую программу и все, что к ней  
относится в отдельной папке (А). В частности, в подпапке(Б)
держу все, что относится к создаваемой БД.
  Для надежности, по завершении определенных этапов разработки
я копирую содержимое папки А (в т.ч. и папку Б) в резервные
папки, а иногда сбрасываю их на CD. Поэтому, если где-то
напортачу, то всегда могу вернуться к предыдущему Этапу.
Так я считал.    
   Но вот при обращении к функции DBiRegenIndex полетела
моя БД (около 20 файлов в PARADOX), вернее ее отладочный вариант.
После нескольких судорожных исправлений обращаюсь к своим
копиям (в том числе к тем, что на CD), но не тут-то было.
Ничего не работает. Не могу даже открыть файлы БД ни
в DataBase DeskTop, ни в SQL Explorer. Ответ - "Таблица разрушена".
  Подскажите, пожалуйста, что можно сделать. Уж очень не хочется
удалять файлы БД и создавать их заново. Тем более, что в некоторых
файлах есть детали, восстановить которые не просто.
 И самое главное. Почему не работают копии. Может где-то
в BDE зафиксированы мои действия и можно что-то подправить. Мне кажется,
что я нарушил целостность.
Спасибо.


 
MsGuns ©   (2008-05-03 18:40) [1]

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

Самый надежный способ заключается в таком алгоритме:

Имеется "образец" БД со всеми ограничениями, настройками, индексами и т.д., но без данных, т.е. все таблицы пустые.
Перед архивацией текущей БД все записи всех ее таблиц извлекаются запросами Select * from Table или соотв-ми QBE-операторами с CheckPlus во всех полях. Каждый Answer переименовывается в соответствии с таблицей, откуда получен в специально созданнй для этой цели каталог. По завершении "копирования" данных содежимое этого каталога архивируется.
 При восстановлении из архива в преварительно очищенный рабочий каталог  переписывается содержимое "образцовой" БД, затем данные таблиц из архива разворачиваются опять-таки во временном каталоге. Затем запросами Insert данные развернутых таблиц переноятся в "образцовую" БД.

Как архивация, так и разархивация должны выполняться в монопольном режиме.


 
Anatoly Podgoretsky ©   (2008-05-03 20:29) [2]

> Alex8  (03.05.2008 17:39:00)  [0]

> И самое главное. Почему не работают копии.

Очень просто, в определеный момент времени ты скопировал не рабочую базу.
Видимо как сказали ты это сделал неправильно. Мало даже просто закрыть проект, надо перед копированием Парадокса перезагрузить машину, ведь это не что ни будь - это Парадокс, а хорошую вещь Парадоксом не назовут.

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


 
Alex8   (2008-05-03 21:54) [3]

Спасибо за просвещение.
Выходит, что зря я сориентировался на PARADOX. Два его существенных
недостатка (разбалансировка индексов и сложность копирования) наводят на мысль перейти к другой СУБД. Тем более, что все равно мою БД
нужно восстанавливать заново. Что посоветуете, если учесть, что
я могу ограничиться монопольным режимом и имею некоторый опыт
работы с Visual FOXPRO, а о других (на сегодняшний день ) не знаю ничего.


 
Loginov Dmitry ©   (2008-05-03 22:08) [4]

> Что посоветуете


Firebird rulezzzz! :)


 
MsGuns ©   (2008-05-03 22:50) [5]

>Alex8   (03.05.08 21:54) [3]
>Выходит, что зря я сориентировался на PARADOX.

Сказать вот так наверняка нельзя. Существует масса проектов, годами и даже десятилетиями прекрасно работающих на парадоксе. В том числе и во вполне сетевом варианте. Другое дело, что при проектировании СУБД на парадоксе надо следовать некоторым технологиям, о которых редко пишут в книжках. Плюс разработать и применить надежную систему предотвращения данных от сбоев и потерь, базирующейся на технологиях, не допускающих любые ошибки повреждения данных на всем этапе архивации-разархивации, вроде той, о которой я писал выше

>Два его существенных
недостатка (разбалансировка индексов и сложность копирования) наводят на мысль перейти к другой СУБД.

В принципе нет идеальных БД. Парадокс хорош тем, что не требует никакого админа, легко "ремонтируется", весьма компактен и достаточно шустр.

Хотя, конечно, для проектирования более-менее ответственных БД, особенно планируемых к расширению и масштабированию, лучше выбрать полноценный серверный вариант.


 
Anatoly Podgoretsky ©   (2008-05-03 23:25) [6]

Если это персональная база, то весьма затруднительно советовать клиент-сервер, поскольку зависание компьютера может привести с повреждению базы. А зависание и аварийная перезагрузка является нормой для рабочей станции.

Я не могу сказать в каком состоянии сейчас ФБ, а вот MS SQL легко переживает подобные ситуации и не по опыту, а по его принципам работы.

Но всегда существует риск, что перезагрузка произойдет в момент записи на диск системных областей. Правда если это будет NTFS то не так страшно, это журналируемая файловая система.


 
Loginov Dmitry ©   (2008-05-03 23:30) [7]

> СУБД на парадоксе надо следовать некоторым технологиям,
> о которых редко пишут в книжках


а также нужно знать массу подводных камней, встречающихся при работе с парадоксом, о которых в книжках вообще не пишут. Типичная схема работы с парадоксом:
на 5й день выдалась ошибка "insufficient memory for this operation" - ничего страшного, авось не повторится.
на 10й день полетели индексы, испортилась база - идем в интернет, ищем информацию - качаем TUTIL32, исправляем.
на 15й день выдалась ошибка "insufficient memory for this operation" - ищем причины ошибки, не находим, откладываем
на 20й день юзаешь TUTIL32 снова
на 25й день выдалась ошибка "insufficient memory for this operation" - ищем в интернете, находим 1000 ссылок, исправляем
на 30й день юзаешь TUTIL32 снова
на 40й день понимаешь, что это будет вечно, пишешь автоматическую проверку и восстановление базы и индексов с использованием TUTIL32.DLL
на 50й день выдалась ошибка "insufficient disk space" - ищем причины ошибки, не находим, откладываем
на 80й день выдалась ошибка "insufficient disk space" - идем в интернет, узнаем в чем дело, удаляем с диска пол-гига ненужной инфы
на 100й день жалуется юзер, информация из справочника исчезла. Посылаешь с намеком про кривые руки. Юзера бьют и увольняют.
на 150й день сталкиваешься с тем, о чем говорил юзер, разбираешься, пытаешься воспроизвести, не получается.
на 300й день юзеры в конеч достали со своим справочником. Неделю пытаешься воспроизвести, узнаешь по ходу новые особенности парадокса, виноватой оказывается автоматическая проверка
на 400й день юзер жалуется на ошибку "insufficient disk space", советуешь ему скачать из инета 700 Мбайт порно, а сам пишешь автоматический корректор свободного места на диске.

Мораль сей схемы: со временем сбои уменьшаются. Но не сами по себе. На это нужно тратить время. Много-много. А оно надо? Если надо, то лучше начать с коллекции камешков http://matrix.kladovka.net.ru/index.php?page=bdeproblems
А в 100 раз лучше взять нормальную СУБД, заведомо избавленную от всех этих глюков (например FireBird 2.1), и спокойно заниматься работой, а не разбирательством с глюками.


 
Loginov Dmitry ©   (2008-05-03 23:33) [8]

> Я не могу сказать в каком состоянии сейчас ФБ


В FB 2.1 синхронная запись включена по умолчанию. Так что врядли там что сломается, но сломаться может, как и у всех.


 
Anatoly Podgoretsky ©   (2008-05-03 23:47) [9]

> Loginov Dmitry  (03.05.2008 23:33:08)  [8]

Не про синхронную запись речь, иначе было очень просто.


 
Loginov Dmitry ©   (2008-05-04 00:02) [10]

Так или иначе, иногда и базы FB ломаются, http://ibase.ru/devinfo/db_repair.htm тому подтверждение (


 
MsGuns ©   (2008-05-04 01:04) [11]

Вот сколько можно рекомендовать то, на чем работаешь. Причем часто это единственное,- другого или не видел или имеется самое поверхностное представление. Я не имею в виду Loginov Dmitry ©, а просто саму систему ибо из ветки в ветку как заходит речь о "выборе БД", так заявляются гурьбой вот эти советчики-антисоветчики и начинают сватать или птицу или уракл или еще чего ;)


 
Германн ©   (2008-05-04 01:35) [12]


> MsGuns ©   (04.05.08 01:04) [11]
>
> Вот сколько можно рекомендовать то, на чем работаешь. Причем
> часто это единственное,- другого или не видел или имеется
> самое поверхностное представление. Я не имею в виду Loginov
> Dmitry ©, а просто саму систему ибо из ветки в ветку как
> заходит речь о "выборе БД", так заявляются гурьбой вот эти
> советчики-антисоветчики и начинают сватать или птицу или
> уракл или еще чего ;)
>

Самый бессмысленный и бесполезный пост. Ну как же можно рекомендовать то, на чем сам не работал и не знаешь?


 
Anatoly Podgoretsky ©   (2008-05-04 01:38) [13]

> MsGuns  (04.05.2008 1:04:11)  [11]

Правильно, только MS SQL :-)


 
Palladin ©   (2008-05-04 01:42) [14]

ага, и jet для desktop :)


 
Loginov Dmitry ©   (2008-05-04 07:40) [15]

> Вот сколько можно рекомендовать то, на чем работаешь.


Вообще-то на 80% я работаю на парадоксе, и 20% на FB, необходимость использовать другое пока не возникала. Принцип совета очень прост - сделай проект нормально, и больше не возвращайся. С парадоксом такое (наверно) невозможно, с FB - вполне возможно, с чем-то другим - не могу советовать, т.к. не знаю.


 
korneley ©   (2008-05-04 08:31) [16]


> Anatoly Podgoretsky ©   (04.05.08 01:38) [13]
> > MsGuns  (04.05.2008 1:04:11)  [11]Правильно, только MS
> SQL :-)

За него платить надо :) Поэтому, всё же Firebird + FIBPlus... От, засада! за фибы тоже заплатить придется :)))


 
Alex8   (2008-05-04 08:37) [17]

Возвращаясь к началу обсуждения.
А будут ли работать имеющиеся у меня копии,
если переустановить DELPhI заново?
А если нет, то м.б. переустановить WINDOWS ?


 
korneley ©   (2008-05-04 08:57) [18]


> Alex8   (04.05.08 08:37) [17]

Не должны, чего не переустанавливай, но кто его знает. Есть время и желание - пробуй. Хотя я бы занялся исправлением поврежденных таблиц, см. ссылку в [7] пункт №5


 
Anatoly Podgoretsky ©   (2008-05-04 13:25) [19]

Файлы БД не относятся к Дельфи, поскольку они у тебя порушены, то переустановка Дельфи чуда не сделает.


 
MsGuns ©   (2008-05-04 19:48) [20]

>Германн ©   (04.05.08 01:35) [12]
>Самый бессмысленный и бесполезный пост. Ну как же можно рекомендовать то, на чем сам не работал и не знаешь?

Ну да, а твой - самый полезный и осмысленный ;)

Просто я считаю, что выбор БД -это преррогатива разработчика. Выслушивать советы - его право. Но если советы "односторонние", то я бы лично к таким советам относился бы осторожно. Как минимум.

>Anatoly Podgoretsky ©   (04.05.08 01:38) [13]
>Правильно, только MS SQL :-)

Я это где-то утверждал ?


 
Германн ©   (2008-05-04 21:20) [21]


> MsGuns ©   (04.05.08 19:48) [20]


> Просто я считаю, что выбор БД -это преррогатива разработчика.
>  Выслушивать советы - его право. Но если советы "односторонние",
>  то я бы лично к таким советам относился бы осторожно. Как
> минимум.

Это твое право. Но зачем поливать грязью тех кто советует что-то? Если ты можешь обоснованно рассказать о преимуществах и недостатках разных СУБД, так расскажи и обоснуй. Не можешь, не мешай другим делать то, что они могут.


 
MsGuns ©   (2008-05-04 21:24) [22]

Ну ты же знаешь, что я неоднократно это обосновывал. Зачем холиваришь ? ;)


 
Германн ©   (2008-05-05 01:23) [23]


> MsGuns ©   (04.05.08 21:24) [22]
>
> Ну ты же знаешь, что я неоднократно это обосновывал. Зачем
> холиваришь ? ;)
>

Смайлика не заметил в MsGuns ©   (04.05.08 01:04) [11]

Это АП виноват! :)


 
Alex8   (2008-05-05 08:52) [24]

Еще раз возвращаюсь к началу обсуждения.
Я ввел свою копию на другой компьютер с установленной DELPHI
Все нормально работает. ( Естественно, после того как ввел
псевдоним моей БД). Это значит, что БД (пусть на CD) сохранена.
И что текущая информация хранится не только в моей папке БД,
но и в BDE.
Вопрос в том, как к ней вернуться на моем компьютере.
 Тут возникают  варианты:
 1. Переустановить DELPHI. Он по ряду причин не очень желателен.
 2. Ликвидировать псевдоним БД, а затем вновь создать его на том же
     месте.
 3. А может быть с другого  компьютера перебросить всю папку BDE
    или какие-то файлы  из нее, где хранятся данные о БД.                    
    В частности читал, что псевдонимы хранятся в файле IDAPI32.GFG.  
    Может достаточно этот файл перебросить?
А может еще что-то посоветуете.
Кстати, о резервном копировании.
Может быть имеет смысл при создании БД после создания псевдонима
сразу копировать папку  BDE в папку самой БД ?


 
Anatoly Podgoretsky ©   (2008-05-05 09:15) [25]

4. Инсталировать БДЕ

Учитывая твой уровень знаний, тебе правильнее как можно быстрее уйти от Парадокс и от БДЕ. Иначе снова будет множество вопросов, типа помогите не работает, помогите база порушена.


 
Alex8   (2008-05-05 09:33) [26]

> Инсталировать БДЕ
  К сожалению, в моей ситуации инсталировать БДЕ это значит инсталировать DELPHI, т.к. мой исходный CD включает все вместе.
Поэтому я не знаю, как инсталировать только БДЕ.


 
Sergey13 ©   (2008-05-05 09:53) [27]

> [26] Alex8   (05.05.08 09:33)
> Поэтому я не знаю, как инсталировать только БДЕ.

Поставить Делфи+БДЕ. Снести Делфи. Наслаждаться БДЕ. 8-)


 
Alex8   (2008-05-05 10:09) [28]

> Поставить Делфи+БДЕ. Снести Делфи. Наслаждаться БДЕ. 8-)
Не понял.


 
Anatoly Podgoretsky ©   (2008-05-05 10:34) [29]

> Alex8  (05.05.2008 09:33:26)  [26]

Очень просто, в состав Дельфи входит сертифицированый инсталятор Install Shield Express.
С его помощью создай инсталяцию программ, в которую включи установку BDE и создание псевдонимов (алиасов).
Работы на 5 минут, с освоением максимум на 30 минут.
Не хочешь, тогда тебе в http://www.podgoretsky.com/DM/BadWill.html#BW-06


 
Anatoly Podgoretsky ©   (2008-05-05 10:34) [30]

> Sergey13  (05.05.2008 09:53:27)  [27]

Так поступают ламеры, а что ты о нем думаешь?


 
Sergey13 ©   (2008-05-05 11:02) [31]

> [30] Anatoly Podgoretsky ©   (05.05.08 10:34)

Я ничего о нем не думаю, я шучу.
Лично у меня до сих пор получалось поставить только БДЕ с диска с Делфой выбирая кастом установку и снимая все ненужные галочки.


 
Anatoly Podgoretsky ©   (2008-05-05 11:20) [32]

> Sergey13  (05.05.2008 11:02:31)  [31]

Он инструкции не понял.


 
Alex8   (2008-05-05 11:53) [33]

> Не хочешь, тогда тебе в http://www.podgoretsky.com/DM/BadWill.
Прочитал. Интересно

> Работы на 5 минут, с освоением максимум на 30 минут.
Инсталировал InstallShield Express. На освоение 30минут
мне не хватило (при моем хилом английском). Буду разбираться

> поставить только БДЕ с диска с Делфой выбирая кастом установку
> и снимая все ненужные галочки
Вот это понятно. Попробую.

> ламеры  .  Переведи, пожалуйста, на русский темному человеку

Спасибо всем.


 
Loginov Dmitry ©   (2008-05-05 12:00) [34]


> Работы на 5 минут, с освоением максимум на 30 минут.


с regsvr32 и вовсе 2 минуты ))


 
Anatoly Podgoretsky ©   (2008-05-05 12:04) [35]

> Alex8  (05.05.2008 11:53:33)  [33]

Ну не важно, не освоишь за 30 минут, освоишь скажем за три дня.
Как в мультике - надо сначала час потрахаться, а потом за 5 минут долететь.
Крылья, ноги, хвост.
Осваиваешь один раз, а потом многократно пользуешься.
Но тебе надо двумя путями идти, осваивать инсталятор и уйти от Парадокса.
Лучше всего на клиент сервер.


 
Anatoly Podgoretsky ©   (2008-05-05 12:23) [36]

> Loginov Dmitry  (05.05.2008 12:00:34)  [34]

Есть два фактора

1. нелегально
2. А как быть с SQL Links и не только

Конечно для Парадокс пойдет, но не стоит плохому учить.



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

Форум: "Начинающим";
Текущий архив: 2008.06.01;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.56 MB
Время: 0.041 c
2-1210344648
Inna
2008-05-09 18:50
2008.06.01
Удаление и запрос


15-1208365801
{RASkov}
2008-04-16 21:10
2008.06.01
Jawa в телефонах


15-1208721535
Dmitry S
2008-04-20 23:58
2008.06.01
дешевые СМС.


2-1210623798
AlexDan
2008-05-13 00:23
2008.06.01
Максимальная величина файла


3-1198486495
Виталий Панасенко
2007-12-24 11:54
2008.06.01
Ошибка выполнения запроса





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский