В какой версии Interbase или Firebird была создана база данных?

у меня есть файл с расширением .ib. Я предполагаю, что это либо Interbase или Жар файл, но у меня возникли проблемы с разработкой именно этого. Кроме того, не ясно, что именно версия из Interbase (или Firebird) был использован для создания файла.

то, что я нашел до сих пор:

Я пробовал различные различные программы для чтения этого файла (FlameRobin, Firebird isql.exe, а также последние версия Interbase) и сообщения об ошибках, которые я получаю, говорят мне, что ODS ("на структуре диска") - версия 9. Который довольно стар и датируется примерно тем временем, когда Firebird был разветвлен от Interbase.

мне удалось подключиться к базе данных и запросить ее с помощью Firebird, но некоторые ошибки, которые я получаю, заставляют меня поверить, что это на самом деле база данных Interbase (я могу объяснить дальше, если требуется)

есть ли способ доказательства дурака определения ровно какие базу я имею дело? т. е. это файл Interbase или Firebird, и если да, то с какой версией он был написан?

изменить: Выход gstat.exe -h запуск с помощью Firebird 2.5:

Database header page information:
    Flags           0
    Checksum        12345
    Generation      7558
    Page size       4096
    ODS version     9.1
    Oldest transaction  7506
    Oldest active       7544
    Oldest snapshot     7544
    Next transaction    7549
    Bumped transaction  1
    Sequence number     0
    Next attachment ID  5
    Implementation ID   16
    Shadow count        0
    Page buffers        0
    Next header page    0
    Database dialect    1
    Attributes      force write

    Variable header data:
    Sweep interval:     20000
    *END*

В итоге:

  • получить копию Firebird
  • выполнить gstat.exe -h из каталога bin
  • получить версию ODS с выхода
  • посмотрите в здесь

3 ответов


  1. об ОРВ и как его получить.
  2. Firebird, Interbase версии и соответствующие ODS. Она на русском языке, но стол можно прочитать. Он имеет столбцы-версия, основная версия ODS, поддерживаемые версии ODS.

из ответа на мои комментарии относительно используемого диалекта я предполагаю, что FlameRobin использует диалект 3 при подключении к базе данных, который является диалектом по умолчанию для новых баз данных Read говор для получения дополнительной информации по этому вопросу. С другой стороны, диалект 1 используется по умолчанию для устаревших баз данных (старше IB 6.0).

в isql вы можете использовать следующие предложения, чтобы убедиться, что вы находитесь на диалекте 1. При запуске iSQL:

isql -sql_dialect n

или внутри a сеанс iSQL:

SET SQL DIALECT n;

дополнительная информация о iSQL и диалектах здесь.

Если это не работает, то лучше всего получить старую установку Interbase 5.0, выполнить gbak и восстановить базу данных с установкой Firebird 2.5.

вы также можете попробовать спросить на списки рассылки Firebird. Один из них посвящен преобразованиям базы данных Interbase.

редактировать: как заявил @mghie, проблема с FlameRobin вероятно потому что она не поддерживает ODS до 10.

HTH


можно использовать FBConvert утилита для преобразования базы данных в последний формат Firebird 2.5.