Subject Re: [ib-support] Re: Firebird 1.0.0 and SQL Dialect 3
Author Mark O'Donohue
roy@... wrote:

>Hi
>
>I tried to create a database with isql on the Linux box and get the message:
>
>Warning: Pre IB V6 database only speaks SQL dialect 1 and does not accept Client SQL dialect 3 . Client SQL dialect reset to 1.
>

The error message text is a little misleading, since it is actually
checking the ODS (On Disk Structure) value < 10 rather than the software
major version number.


Here is the code that generates such an error (there are a few similar
errors but this is the exact match):

case isc_info_db_sql_dialect:
dialect_spoken = isc_vax_integer (p, length);
if (major_ods < ODS_VERSION10)
{
if (SQL_dialect > SQL_DIALECT_V5 && Warnings)
{
ISQL_printf(Out, NEWLINE);
sprintf (bad_dialect_buf, "%s%s%s%d%s%s",
"WARNING: Pre IB V6 database only speaks",
" SQL dialect 1 and ",
"does not accept Client SQL dialect ",
SQL_dialect,
" . Client SQL dialect is reset to 1.",
NEWLINE);
ISQL_printf(Out, bad_dialect_buf);
}
}


So conditions required are:
1) we need major_ods < ODS_VERSION10
2) Then we need SQL_dialect > SQL_DIALECT_V5, (This will generally be
true since SQL_DIALECT_V5 = 1, and SQL_dialect you set to 3 )
3) And we need to have seen some warnings.

It's a bit curious that ODS should be less than 10 for a new databases.


I'd appreciate a:

sql> show version;

so we can see what versions are involved.
And a trace of the DOS/shell window commands as you type in these and
get results back might also help.

(and is it possible that there is an old version of something sneaking
in here, as Sean suggested?)

Cheers

Mark


--
Your database needs YOU!
http://www.firebirdSQL.org