Вскрыть самописную БД...

gysek02

существует ли какая нить теоретическая возможность?
Количество полей в записи около 20, записей всего порядка 40 млн., формат базы науке не известен - самописный, недокументированный, множество неодинаковых по размеру файлов (около 100 файлов всего). Есть "родной" интерфейс (под Windows позволяющий делать небольшие выборки (по любому из полей) в пределах 100 записей, но не более того.
Задача проста - перезалить данные в ЛЮБОЙ формат, позволяющий подвергать их статистической обработке, например в SQL.
Есть у кого какие мысли?

evgen5555

Cronos, что ли?

gysek02

Нет
Cronos, если мне не изменяет склероз, нормально выгружается в эксель.

Hastya

Возможность всегда есть, вопрос в трудозатратах.

yolki

конечно есть. был опыт вскрывания двух баз.
1. телефонный справочник новоурюпинска. трудозатраты - 200$ -успешный
2. база запчастей к субаре (с картинками). трудозатраты - 3000$ - с такими оценками не согласился заказчик и дело прекратилось

Olenenok

Ага, попробуй нормально извлечь в эксель БД в 18.000.000 записей, когда за секунду вытаскивается не более одной

gysek02

Если ты про кронос, то самописный софт по ее извлечению в удобоваримый вид в наличии имеется. Здесь речь не о кроносе.

tamusyav

А эти 100 записей можно куда-нить сэкспортировать? И сколько времени тратится на их выборку?

gysek02

времени на выборку 100 записей тратится менее 1 секунды, их можно экспортировать в эксель, фактически - Copy-Paste.
Вручную выгрузить 40 млн. записей по 100 шт. - почти вариант - вопрос лишь во времени и в количестве рабочих рук. Если бы не еще одно "НО" - в базе по всей видимости нет поля с уникальными значениями (типа counter которое позволило бы вытаскивать их подряд без вероятных повторов одних и тех же записей. Поэтому вручную не вариант...

tamusyav

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

splinter

Попытаться декомпильнуть код windows-приложения и определить каким образом вообще выбираются данные из файлов. Если это MSIL- то достаточно воспользоваться reflector'ом.
Либо.
Если программа выбирает 100 записей и это число захардкожено - можно попробовать изменить его на желаемое значение при помощи какого-нибудь редактора ресурсов.

NataNata

берешь hiew и изучаешь базу
на худой конец - можно покопать в дизассемблере
или прогу откорректировать
расшарь файлик с прогой, мож гляну на досуге, тряхну стариной

durka82

А написать скрипт на AutoIt или nnCron в таком случае не будет ли лучшим вариантом (если это надо сделать один раз)?
Правда они с БД напрямую работаь не умеют (расве что через com но можно слить все в файл с разделителями, а оттуда уже залить в БД.
Если бы не еще одно "НО" - в базе по всей видимости нет поля с уникальными значениями (типа counter которое позволило бы вытаскивать их подряд без вероятных повторов одних и тех же записей.
Наверняка можно просто запросить все записи, а потом перебрать и скопировать все страницы.
Оставить комментарий
Имя или ник:
Комментарий: