Под какой версией Interbase или Firebird была создана база данных? - PullRequest
6 голосов
/ 02 апреля 2012

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

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

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

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

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

Edit: Вывод 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 ]

12 голосов
/ 02 апреля 2012
  1. О СОД и как его получить .
  2. версии Firebird, Interbase и соответствующие ODS . Это на русском языке, но таблицу вы можете прочитать. Имеются столбцы - Версия, Основная версия ODS, Поддерживаемые версии ODS.
1 голос
/ 02 апреля 2012

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

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

isql -sql_dialect n

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

SET SQL DIALECT n;

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

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

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

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

НТН

0 голосов
/ 02 апреля 2012

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

...