Изучение уязвимостей электронных систем.
 
key programming immo tools emergency start device программаторы ключа заводилки Кодграббер штатных охранных систем, toyota, lexus, subaru.

Вернуться   Изучение уязвимостей электронных систем > Базы данных > Общий раздел

Общий раздел Базы данных и программы для работы с ними

Ответ
 
Опции темы
Старый 22.12.2015, 09:18   #1
makslitvinov
случайно влез
 
Регистрация: 24.10.2015
Сообщений: 4
Поблагодарил: 0
Поблагодарили 1 раз в 1 сообщении
makslitvinov стоит на развилке
По умолчанию аксес

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


Кароче: база mdb, весом 380 мб (размер сжатой базы).

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

Сейчас: база открывается, но на все действия вылезает ошибка - В файле MAccess обнаружено повреждение...ну т.д. с предложением воспользоваться резервной копией. Есть правда исключения: можно открыть в конструкторе таблицы, но нельзя их открыть в таблично виде. Запросы открываются в конструкторе и при этом можно создать запрос по таблицам и он выведет всю информацию .Несколько форм открываются в конструкторе, но до VB кода не добраться.

Проьовал: на все попытки сжать/восстановить, /DECOMPILE /Repair, экспортировать/импортировать вываливается с указанной выше ошибкой.
JetComp, mdb_repair и их комбинации отрабатывают номана, но результат после них такой же, нет они правда базу немного сжали, но вот модули с кодом все равно не открываются.
AccessRecover 2.2 вообще сказал что с базой все ОК, типа сжимать ее не надо.


Задача: специфика базы такова, что абсолютно наплевать на табличные данные - постоянно закачиваются новые, взамен старых. Есть резервная копия базы месячной давности, за это время изменись только модули с кодом, в которых появились новые функции с динам. запросами и т.д.
То бишь, из этой поломанной базы самое главное извлечь VB модули!!!

Это добиться я не смог, единственное что, открыв файл mdb в текстовом редакторе, я смог найти некоторые нужные мне куски кода, но вытащить все содержимое модуля не смог, уже очень там все разбросано и исковеркано.

Спрашивается: можно ли еще что-нибудь сделать, что бы вытащить содержимое модулей или можно забросить эту идею и приступить к написанию заново недастающих кусков кода?

P.S. надеюсь никого не утомил, но хоть посмеятся можно... до сих пор не понимаю как эти чуваки умудрилсь т.о. поломать базу. Да.. дурное дело не хитрое.
makslitvinov вне форума   Ответить с цитированием
Старый 22.12.2015, 16:52   #2
veloroom
гость
 
Регистрация: 28.01.2010
Сообщений: 134
Поблагодарил: 175
Поблагодарили 193 раз в 65 сообщениях
veloroom скоро станет знаменитым(-ой)
По умолчанию

Судя по описанию - если уж даже VB формулы невозможно открыть - с этим файлом дело тухлое.

ИМХО "приступить к написанию заново недастающих кусков кода" - самый лучший вариант, Причем с переходом на нормальную СУБД И выбрасыванием акцесса в мусорное ведро.
У одного моего знакомого году в 2005 работала некая система учета на акцессе. Сначала, когда с ней работал только 1 сотрудник на своем компе, все было нормально. Но потом фирма разрослась, количество сотрудников увеличилось и потребовалось работать с этой БД нескольким людям. Ввиду многочисленного кода внутри базы (и лени сотрудника делавшего ее) решено было не переходить на нормальную СУБД а переделать эту для сетевой работы. После этого она стала падать регулярно раз в неделю, так как постоянно находился какой-нибудь сотрудник, который умудрялся какими-то неведомыми ни кому способами ее "уронить".
После полугода мучений перешли на нормальную СУБД и все проблемы исчезли.
Access Это вообще не база данных а какое-то кривое недоразумение.
veloroom вне форума   Ответить с цитированием
Старый 22.12.2015, 17:51   #3
terekhov
случайно влез
 
Регистрация: 14.10.2015
Сообщений: 4
Поблагодарил: 0
Поблагодарили 1 раз в 1 сообщении
terekhov стоит на развилке
По умолчанию

Цитата:
Сообщение от makslitvinov Посмотреть сообщение
Поломалася моя база аксес причем много тем есть да понимаю но проблема весьма нетипичная так что почитайте вопрос и может кто подскажет какой нибудь еще вариант


Кароче: база mdb, весом 380 мб (размер сжатой базы).

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

Сейчас: база открывается, но на все действия вылезает ошибка - В файле MAccess обнаружено повреждение...ну т.д. с предложением воспользоваться резервной копией. Есть правда исключения: можно открыть в конструкторе таблицы, но нельзя их открыть в таблично виде. Запросы открываются в конструкторе и при этом можно создать запрос по таблицам и он выведет всю информацию .Несколько форм открываются в конструкторе, но до VB кода не добраться.

Проьовал: на все попытки сжать/восстановить, /DECOMPILE /Repair, экспортировать/импортировать вываливается с указанной выше ошибкой.
JetComp, mdb_repair и их комбинации отрабатывают номана, но результат после них такой же, нет они правда базу немного сжали, но вот модули с кодом все равно не открываются.
AccessRecover 2.2 вообще сказал что с базой все ОК, типа сжимать ее не надо.


Задача: специфика базы такова, что абсолютно наплевать на табличные данные - постоянно закачиваются новые, взамен старых. Есть резервная копия базы месячной давности, за это время изменись только модули с кодом, в которых появились новые функции с динам. запросами и т.д.
То бишь, из этой поломанной базы самое главное извлечь VB модули!!!

Это добиться я не смог, единственное что, открыв файл mdb в текстовом редакторе, я смог найти некоторые нужные мне куски кода, но вытащить все содержимое модуля не смог, уже очень там все разбросано и исковеркано.

Спрашивается: можно ли еще что-нибудь сделать, что бы вытащить содержимое модулей или можно забросить эту идею и приступить к написанию заново недастающих кусков кода?

P.S. надеюсь никого не утомил, но хоть посмеятся можно... до сих пор не понимаю как эти чуваки умудрилсь т.о. поломать базу. Да.. дурное дело не хитрое.

опробуй вот эту утилиту [Ссылки могут видеть только зарегистрированные пользователи. ] eRepair Access
или следующие шаги:

Чтобы включить Администратор рабочих групп (Workgroup Administrator tool) в MS Access 2013 надо сделать следующее:
1. Открываем MS Access и создаём пустую базу.
2. Нажимаем CTRL+G, чтобы открыть Immediate window:
3. В окне Immediate вводим DoCmd.RunCommand acCmdWorkgroupAdministrator и нажимаем Ввод (Enter).
4. В открывшемся окне

нажимаем кнопку «Связь» и выбираем *.mdw файл.
5. Перезапускаем MS Access.

Как чинить поврежденный фаил

Не пытайтесь ремонтировать поврежденные формы, отчеты, макросы и модули . Перед выполнением восстановления, пожалуйста, убедитесь, что выполнили следующее условие :

1. Создайте резервную копию поврежденного файла базы данных (MDB).
2. Удалите файл с расширением LDB, если таковой имеется. Перед удалением этого файла необходимо закрыть соответствующий файл с расширением MDB.

Файл с расширением LDB используется для идентификации заблокированных записей в совместно используемой базе данных, а также пользователя, который их заблокировал. Если база данных используется совместно, при создании файла LDB ему присваивается имя соответствующей базы данных (файла MDB). Например, при открытии (для совместного использования) базы данных Northwind.mdb, расположенной в папке C:\Msoffice\Access, в этой же папке автоматически создается файл с именем Northwind.ldb. Файл LDB автоматически удаляется после того, как с базой данных завершает работу последний пользователь. Исключения из этого правила представляют ситуации, когда последний пользователь не имеет разрешений на удаление для папки с файлом MDB и когда база данных повреждена. В файле LDB содержится список пользователей, работающих с базой данных в данный момент.
3. Запустите средство сжатия и восстановления. Для этого выполните перечисленные ниже действия.
a. Если база данных открыта, закройте ее.
b. В меню Сервис выберите пункт Служебные программы, а затем — пункт Сжать и восстановить базу данных.
c. В диалоговом окне База данных для сжатия выберите файл, который требуется сжать, и нажмите кнопку Сжать.
d. В диалоговом окне Сжатие базы данных под именем введите новое имя файла и нажмите кнопку Сохранить.
terekhov вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 02:13. Часовой пояс GMT +4.


Перевод: zCarot