Страница 1 из 4 1234 ПоследняяПоследняя
Показано с 1 по 10 из 33

Тема: Небольшой ФАК о том как починить БД (Восстановление check.db)

  1. #1
    Новичок
    Регистрация
    02.01.2013
    Адрес
    Ая
    Сообщений
    11
    Поблагодарил(а)
    0
    Благодарностей: 0 (сообщений: 0)

    Exclamation Небольшой ФАК о том как починить БД (Восстановление check.db)

    Небольшой ФАК о том как починить БД. в девятом сообщении темы.

    Я прочитал почти все темы тут связанные с check.db. Самому восстановить его не удается, как его восстановить имея поврежденный check.db (при открытии dbd32 пишет corrupt table index header ), pcheck, rcheck, dcheck, но при этом не имея ни одного бумажного чека.Может куда нибудь отправляется бэкапом по стандарту в кипере?
    Так же говорили что может помочь переиндексация, как ее сделать? опишите по подробнее, а то тут никаких руководств.
    Последний раз редактировалось SH; 09.09.2014 в 21:20.

  2. #2
    Разбирающийся
    Регистрация
    20.10.2010
    Адрес
    Kiev
    Сообщений
    129
    Поблагодарил(а)
    0
    Благодарностей: 0 (сообщений: 0)
    Если поврежден только check.db то его можно восстановить с pcheck.db

  3. #3
    Новичок
    Регистрация
    02.01.2013
    Адрес
    Ая
    Сообщений
    11
    Поблагодарил(а)
    0
    Благодарностей: 0 (сообщений: 0)
    Цитата Сообщение от pokemon99 Посмотреть сообщение
    Если поврежден только check.db то его можно восстановить с pcheck.db
    а как это сделать? поподробнее пожалуйста

    ---------- Добавлено в 18:23 ---------- Предыдущее сообщение было размещено в 18:22 ----------

    Цитата Сообщение от pokemon99 Посмотреть сообщение
    Если поврежден только check.db то его можно восстановить с pcheck.db
    так же еще вот в чем дело, на момент когда произошла ошибка было открыто около 14 столов. Это тоже можно восстановить?

    ---------- Добавлено в 18:47 ---------- Предыдущее сообщение было размещено в 18:23 ----------

    Так же еще один вопрос, как посмотреть собственное базу саму, интересует файл menu.db. Мне нужно его открыть в Database Desktop, а там он одни иероглифы показывает все перепробывал. В BDE стоит:
    configuration-drivers-native-paradox: pdox ansi cyrillic
    configuration-drivers-native-dbase: dbase rus cp866
    configuration-drivers-native-foxpro: dbase rus cp866
    configuration-drivers-native-intrbase: pdox ansi cyrillic
    configuration-drivers-native-msaccess: pdox ansi cyrillic

    system-init: ascii: ansi.

    я все перепробовал поменять и в реестре правил ветку где надо изменить шрифт для dbd32
    и другую ветку где менять надо в cp_1252=cp_1251 че то такое. ничего не помогло, одна фигня пишется.

  4. #4
    ТВОРЕЦ СЧАСТЬЯ Аватар для SH
    Регистрация
    29.11.2006
    Сообщений
    18,069
    Поблагодарил(а)
    481
    Благодарностей: 192 (сообщений: 165)
    Цитата Сообщение от dec04 Посмотреть сообщение
    нужно его открыть в Database Desktop, а там он одни иероглифы показывает все перепробывал
    Не все. BDE Тут ни при чем.
    В самом DBD.32 Edit - Preferences - Default system font поменять на Helica.

    Цитата Сообщение от dec04 Посмотреть сообщение
    а как это сделать? поподробнее пожалуйста
    Берете check.db из другого дня, из pcheck битого дня берете информацию об оплате. Часть данных совсем будет потеряна, но она обычно не критична (номер стола, количество гостей и т.д.)

    Цитата Сообщение от dec04 Посмотреть сообщение
    на момент когда произошла ошибка было открыто около 14 столов. Это тоже можно восстановить?
    А что за ошибка? Открытые столы лежат в orders.db. Возьмите чистую базу, запустите, убедитесь, что все ок, потом в нее подкиньте orders.* из битой базы. По идее, должны будете увидеть Ваши столы - после этого их можно будет закрыть.
    Алексей Аркадьев

    Когда заказчик ищет волшебника, то чаще всего он находит сказочника.
    Если у Вас есть вопрос по поддержке - напишите его на форуме, я обязательно отвечу, если знаю ответ.
    Если Вам нужны какие-то файлы, пишите на почту: support@carbis.ru, но вначале посмотрите в разделе для скачивания.
    Для коммерческих вопросов:
    +7 (495) 740-49-91, или на почту: sales@carbis.ru

  5. #5
    Новичок
    Регистрация
    02.01.2013
    Адрес
    Ая
    Сообщений
    11
    Поблагодарил(а)
    0
    Благодарностей: 0 (сообщений: 0)
    Ну ии поменял там на helica всеравно не работает.
    Короче там была ошибка a6h то что эклз переполнена. ЯЯ заменил фискальник ии вылезлаа ошибка. Cannott openn tablee database checkk, lastt что то там -5.

  6. #6
    Разбирающийся Аватар для VampireKB
    Регистрация
    27.03.2007
    Адрес
    Moscow City
    Сообщений
    2,854
    Поблагодарил(а)
    0
    Благодарностей: 17 (сообщений: 11)
    Цитата Сообщение от dec04 Посмотреть сообщение
    Ну ии поменял там на helica всеравно не работает.
    Короче там была ошибка a6h то что эклз переполнена. ЯЯ заменил фискальник ии вылезлаа ошибка. Cannott openn tablee database checkk, lastt что то там -5.
    поменяй на Anctica
    Хотите БЕСПЛАТНЫЙ кипер ? http://www.techrk.ru/?cat=17
    Также доступен ФТП !! ftp://techrk.ru
    Теперь возможно произвести покупку ПО через терминалы Qiwi.Подробности на сайте

  7. #7
    ТВОРЕЦ СЧАСТЬЯ Аватар для SH
    Регистрация
    29.11.2006
    Сообщений
    18,069
    Поблагодарил(а)
    481
    Благодарностей: 192 (сообщений: 165)
    Цитата Сообщение от dec04 Посмотреть сообщение
    Ну ии поменял там на helica всеравно не работает.
    Этого не может быть, ИМХО.

    Цитата Сообщение от dec04 Посмотреть сообщение
    была ошибка a6h то что эклз переполнена. ЯЯ заменил фискальник ии вылезлаа ошибка. Cannott openn tablee database checkk, lastt что то там -5.
    Очень странно. Блокировка ЭКЛЗ не бьет базу.
    cor.exe должна была помочь.
    Алексей Аркадьев

    Когда заказчик ищет волшебника, то чаще всего он находит сказочника.
    Если у Вас есть вопрос по поддержке - напишите его на форуме, я обязательно отвечу, если знаю ответ.
    Если Вам нужны какие-то файлы, пишите на почту: support@carbis.ru, но вначале посмотрите в разделе для скачивания.
    Для коммерческих вопросов:
    +7 (495) 740-49-91, или на почту: sales@carbis.ru

  8. #8
    Новичок
    Регистрация
    02.01.2013
    Адрес
    Ая
    Сообщений
    11
    Поблагодарил(а)
    0
    Благодарностей: 0 (сообщений: 0)
    Цитата Сообщение от SH Посмотреть сообщение
    Этого не может быть, ИМХО.


    Очень странно. Блокировка ЭКЛЗ не бьет базу.
    cor.exe должна была помочь.
    Я серьезно, ничего не помогает, разве что только поменять шрифт на anctica, не пробовал еще. И это действительно странно, потому что работало работало и именно в новогоднюю ночь сломалось. Мне край нужно открыть файл меню.дб, в надстройка BDE у меня все нормально стоит? Может где еще реестр поправить?

  9. #9
    Разбирающийся
    Регистрация
    18.10.2012
    Адрес
    Новосибирск, Омск
    Сообщений
    5,362
    Поблагодарил(а)
    188
    Благодарностей: 461 (сообщений: 364)
    Про то почему кодировка косячит - ничего не подскажу. Разве что предложу попробовать другой редактор, например DBTour. Или просто попробовать на другой Винде.

    От себя небольшой подарок на НГ. Небольшой ФАК о том как починить БД.

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

    0. Перед тем как начинать пытаться чинить DATABASE (даже стандартными средствами типа cor.exe) настоятельно рекомендую сделать копию DATABASE (а лучше 2 копии... В разных местах... В архив... Под пароль...)

    1. Для работы с БД Paradox, лично я юзаю DBTour, т.к. в нем есть дополнительный инструментарий который иногда помогает. Но можно и DBD.

    2. Смотрим что сломалось. Для этого открываем в редакторе папку DATABASE, поочередно открываем каждый файл и проматываем его от начала и до конца. Бывает так что файл открывается, первые несколько записей доступны, а при попытке посмотреть записи из середины или с конца - возникает ошибка.
    В итоге битый файл или не откроется совсем (выдаст ошибку), либо откроется, но вместо осмысленных данных там будет "каша", либо не сможет прочитать все записи.

    3. Что можно починить, а что нет.
    VALUES.DB – этот файл никогда не открывается. Похоже что это вообще не файл БД. Его чинить не надо.
    ORDERS.DB – этот файл содержит инфу по текущим заказам (открытым столам). Как правило, починить его не получается. В лучшем случае удастся восстановить структуру файла, а вот содержимое BLOB полей, где в зашифрованном виде храниться инфа по блюдам), обычно рушиться безвозвратно. Проще и быстрее подкинуть файлы ORDERS.* из чистой базы и попытаться восстановить содержимое столов по заказникам и по памяти.
    CHECK.DB – файл содержит заголовки чеков (номер чека/стола, официант, время открытия/закрытия, группу станций, сумму и т.п.) Если файл не восстанавливается при помощи утилит, то его всегда можно заполнить вручную (см. далее)
    PCHECK.DB – файл содержит информацию по оплатам. Какой валютой закрывался тот или иной чек, была ли при этом выдана сдача. Если файл не восстанавливается при помощи утилит, то его всегда можно заполнить вручную (см. далее)
    RCHECK.DB – файл содержит информацию по проданным блюдам. Если файл не восстанавливается при помощи утилит, то ничего более сделать не получится. Расход блюд за этот день будет потерян полностью или частично.

    4. Автоматическое восстановление. Утилита Pdxrbld.exe. Paradox tables check and repair utility. Данная софтинка пытается в автоматическом режиме починить битую таблицу. После того как мы поняли какие таблицы у нас битые, копируем их в отдельную папку (и *.db и *.px), запускам Pdxrbld.exe, натравливаем его на папку с битыми файлами, выбираем параметры работы (Rebuild All tables или Rebuild corrupted tables), жмем Start, после окончания внимательно читаем Log. Если у файла побит заголовок (шапка таблицы), то программа может запросить у вас чистый образец файла, что бы взять шапку от туда. В этом случае указываете ей путь к соответствующему чистому файлу.
    После того как программа отработала, открываем леченные файлы в DBTour и просматриваем из содержимое на предмет наличия мусора.
    Из моего опыта, данная прога помогает в 50% случаев.

    5. Заполняем файлы в ручную. Если ничего не помогло, а данные восстановить хочется, то тогда в рукопашную…
    Восстановление CHECK.DB. В худшем случае берем чистый CHECK.DB и заполняем его руками. Если повезло немного больше и просто не хватает или испорчены только несколько записей, то работаем только с ними. Сразу оговорюсь, при ручном заполнении полей CHECK.DB мы потеряем инфу по: официанту, кассиру, номеру стола, времени открытия/закрытия, станции, группе станций.
    Принцип восстановления следующий: при заполнении полей таблицы мы берем недостающую инфу из других, связанных, таблиц, либо придумываем ее сами. Заполняем следующие поля (на примере таблиц версии 6.97, в более ранних некоторые поля могут отсутствовать, в более поздних – добавляются дополнительные):
    Cnum – Номер чека. Чеки нумеруются по порядку, без пропусков. После закрытия дня чеки начинаются с 1. Сколько всего было чеков в смене можно посмотреть по максимальному значению поля Cnum из таблиц PCHECK.DB или RCHECK.DB
    LogicDate – Кассовая дата в формате dd.mm.yyyy например 03.01.2013
    RealDate – Фактическая дата в формате dd.mm.yyyy например 03.01.2013. Как правило совпадает с Кассовой.
    OpenTime – время когда стол был открыт. Мы его не знаем, взять его не откуда, я ставлю просто 00:00
    CloseTime – Тоже самое только время закрытия. 00:00
    Cover – Количество гостей
    Cashier – Кассир. Значение поля Sifr от нужного кассира из таблицы PERSONAL.DB. При этом вся выручка в отчетах упадет на этого Кассира! Если нам это не нужно, то ставим 0. Тогда в отчетах по кассирам будет «Неизвестный»
    Waiter – Официант. Значение поля Sifr от нужного официанта из таблицы PERSONAL.DB. При этом вся выручка в отчетах упадет на этого официанта! Если нам это не нужно, то ставим 0. Тогда в отчетах по официантам будет «Неизвестный»
    Unit – номер станции на которой был закрыт чек. Значение поля Ident из таблицы CASHES.DB
    Depart – Группа станций, в которой был закрыт чек. Значение поля Ident из таблицы DEPARTS.DB
    Total – сумма по чеку. Берем из таблицы PCHECK.DB из поля BaseSumEqw из строки с соответствующим Cnum.
    BaseKurs – Курс валюты. Ставим 1.
    Deleted – Признак того что чек был удален. Ставим 0
    Manager – Sifr менеджера который удалял чек. Ставим 0
    Charge – ХЗ что такое. Ставим 0
    FiscalSum – тоже самое что и Total
    Table – Номер стола. Мы его не знаем, взять его не откуда. Придумываем сами, например 0000
    OpenDate – Дата когда стол был открыт. Как правило совпадает с LogicDate
    Total2 – тоже самое что и Total
    RCover – то же самое что и Cover
    TaxSum – Сумма налогов. Как правило 0
    TaxSum1 – Сумма налогов. Как правило 0
    NacKurs – Курс. Ставим 1
    TaxRate – Опять налоги. 0
    TaxRateR – Опять налоги. 0
    CoverP – то же самое что и Cover
    LNUM – Совпадает с Cnum
    ExFiscNum – Оставляем пустое <null>
    Upcharge – 0
    Bonus – 0
    BonusCArd – 0
    PriceScale – 0
    PrecheckTime – 0
    OrdSerial – Номер чека в системе RKeeper. Сквозная нумерация, не обнуляется при закрытии смены. В 16-тиричном формате. Можем поставить просто 0
    Sname – Имя кассового сервера на котором был закрыт чек.

    Надо отметить, что полное ручное восстановление таблицы CHECK.DB очень трудоемко и может занять несколько часов. Иногда проще и быстрее свалить все продажи в 1 большой чек. Для этого:
    В таблице RCHECK.DB, в поле Cnum. во всех строках ставим 1. Т.е. все блюда принадлежат чеку №1
    В таблице PCHECK.DB оставляем только одну запись: Cnum=1, Curency=4 (Рубли), BaseSumEqw = OriginalSum = Выручка за смену, Kurs =1, Disc=0, Extra=пустое, CardExtra= пустое, BaseSumEqw1 = OriginalSum1 = Выручка за смену, IsTax=0.
    В таблице CHECK.DB делаем только одну запись с общей выручкой.

    Восстановление таблицы PCHECK.DB. В данной таблице храниться инфа по оплатам. Т.е. какой валютой был оплачен тот или иной чек. При ручном восстановлении мы потеряем расклад по валютам. Т.е. общая выручка в отчетах будет верная, но вся она будет проходить по валюте Рубли.
    Cnum – Номер чека, берем из таблицы CHECK.DB
    Curency – Валюта. Ставим 4 (рубли)
    BaseSumEqw – Сумма по чеку, берем из таблицы CHECK.DB
    OriginalSum – То же самое что и BaseSumEqw
    Kurs – 1
    Disc – 0
    Extra – пустое
    CardExtra – пустое
    BaseSumEqw1 - BaseSumEqw
    OriginalSum1 – BaseSumEqw
    IsTax – 0

    6. После того как все восстановили, закрываем день и в Отчетах смотрим все ли у нас совпадает. Как мнимум нужно проверить 2 отчета: "Общая выручка" и "Расход блюд" если вы все сделали правильно, то итоговые суммы этих отчетов должны совпадать. Если они отличаются - вы где то ошиблись.

    PS Если в заведении используются Налоги и Многовалютность, то задача несколько усложняется. Но более-менее правильные отчет всегда можно получить.
    Последний раз редактировалось sibgaba; 10.01.2013 в 19:52.

  10. 2 пользователей сказали cпасибо sibgaba за это полезное сообщение:

    normgreg (16.11.2017),olegash (20.11.2018)

  11. #10
    Новичок
    Регистрация
    02.01.2013
    Адрес
    Ая
    Сообщений
    11
    Поблагодарил(а)
    0
    Благодарностей: 0 (сообщений: 0)
    Цитата Сообщение от sibgaba Посмотреть сообщение
    Про то почему кодировка косячит - ничего не подскажу. Разве что предложу попробовать другой редактор, например DBTour. Или просто попробовать на другой Винде.

    От себя небольшой подарок на НГ. Небольшой ФАК о том как починить БД.
    Спасибо за такой подробный и развернутый ответ, но я уже опоздал с этим так как гости уезжают, остается только ждать "разбор" от начальства. Тем более что как я понял открытые столы не восстановить (ну т.е. ту инфу которая нужна, а именно номер стола оффициант, а это все нужно было не меньше чем все остальное). Так что спасибо. FAQ я себе на памятку оставлю в защищенном месте.

Похожие темы

  1. Исправление неверных очередей/SH Check utility
    от clare в разделе Проблемы с сервером Storehouse SDBSERV
    Ответов: 5
    Последнее сообщение: 21.03.2014, 16:03
  2. Проблема с check.db
    от Shaft в разделе RK: Базы данных, ошибки, проблемы
    Ответов: 3
    Последнее сообщение: 27.08.2012, 13:22
  3. Небольшой FAQ по R-Keeper
    от Admin в разделе R-Keeper 6
    Ответов: 38
    Последнее сообщение: 23.10.2011, 14:08
  4. Ошибка в check.db в поле bonus
    от yui0 в разделе RK: Базы данных, ошибки, проблемы
    Ответов: 2
    Последнее сообщение: 13.08.2010, 21:25
  5. Нужно срочно починить компьютер!!!!
    от Ms.Sindderella в разделе Кyрилка
    Ответов: 0
    Последнее сообщение: 15.01.2008, 06:30

Метки этой темы

Ваши права

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