Subject Re: [IB-Conversions] Query on setting SQL Dialects
Author Helen Borrie
At 04:25 PM 12/09/2007, you wrote:
>Hi All,
>
>A quick question on setting SQL Dialects.
>
>We are migrating Interbase 5.6 database to Firebird 1.5.4. We have
>used register exisiting database option in Flamerobin to register
>the existing Interbase database on Firebird. The SQL Dialect is 1
>now in Firebird database.
>
>We would like to change the SQL Dialect to 3 at the database level.
>
>But the command SET SQL DIALECT 3; is used to set Dialect at the
>connection level.
>
>Any commands for setting Dialect at database level?
>
>We tried using the gfix command, but getting the attached error.

I don't know what "the attached error" is but if you sent a file
attachment, it would be eaten. We don't allow attachments to list messages.

>Can anybody give your thoughts on how to achieve this (Setting SQL
>Dialect to 3)?

The only way to do it is to extract a metadata script from your
Dialect 1 database, create the database anew under Fb 1.5.4 and then
pump the data. This ensures that numbers and dates get stored in the
correct format for Dialect 3. Fix up the script before you run it,
so that you have taken care of any keywords that the old database
used as fieldnames. I think Ann already gave you a link to the free
clevercomponents data-pumping software. It works very well and will
assist you with the illegal fieldnames.

There is no magic wand to achieve the conversion within an existing
database, although there were bits and pieces in place at the time IB
6.0 was open sourced that were intended to be tools for converting data.

The gfix -sql command is a no-op, really. Its intended use was to
change the SQL dialect attribute of a database *after* one had
painstakingly fixed up the data by hand. Don't try to make it
work. Pretend it's not there. It can create the illusion a dialect
1 database is a dialect 3 one, which will make your data highly prone
to the kinds of irreversible corruption you won't see through
exceptions but through wrong information being created and/or
reported. Data pumping is not only safer, it is simpler.

Helen