В какой версии 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 ответов
- об ОРВ и как его получить.
- 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.