Subject Re: [firebird-support] Changing Database Dialects
Author Helen Borrie
At 10:14 AM 24/04/2006, you wrote:
>Hi
>
>Upon reading more about dialects and reviewing the databases i have
>i've discovered that i have several DB's that are of Dialect 1. They
>are new databases created with Firebird 1.5 just not with the correct dialect.

That seems weird. Firebird 1.5 creates a D3 database by
default. The only way to create a D1 database would be to
intentionally set isql's (or another tool's) client dialect to 1 (SET
SQL DIALECT 1) before running the CREATE DATABASE statement.

>Is it possible to simply change the dialect on these databases to 3
>or am i inviting serious trouble?

Well, you can use gfix to change the dialect *attribute* of the
database. However, if you really do have a D1 database, that doesn't
convert your database to D3. In a "real" D1 database, some data
types would have bee stored differently to the way they are stored in
a D3 database. Merely changing the dialect attribute doesn't update any data.

In short, the safe solution is to create a new, empty D3 database and
pump in the data from the D1 database. To get the empty database,
you can gbak the D1 database using the -m[etadata] switch, restore
that, use gfix to change the dialect of the empty db, then pump in
the data from the D1 database.

./heLen