Subject Re: [firebird-support] isc_interprete, isc_sql_interprete etc
Author Helen Borrie
Geoff,

At 07:59 PM 12/02/2005 +1100, you wrote:

>What do isc_interprete

interprets GDSCODEs

>and isc_sql_interprete

interprets SQLCODES

>actually do?

It's all there in much detail Chapter 10 of the API Guide, step by step.

>And on a related note: what does the isc_dpb_lc_messages param
>do in the attach database call?

It's for specifying a language-specific message file, i.e. one generated
from a language-specific branch of msg.gdb.


>Because it is necessary to install firebird.msg on the client

Why? You didn't *say* you were used the embedded server, but are you?

>I had supposed that both of the interpret functions were used
>by the fbclient.dll to read message formats directly from this
>file.

On the server, yes. Someone taught the Fb 1 _interprete functions to check
on the client for an optional copy of the message file in the "expected"
place on the client - the Firebird root as found via the INTERBASE
environment variable and/or the Firebird 1 install directory in the
Registry, en route back from the server with its Status Vector payload. Not
sure what the purpose was. Then Firebird 1.5 changed the way the server
and client found "home". This client-side message file option seems to
cause more problems than benefits now, with Fb 1.5. It wasn't taught to
ignore a file named interbase.msg. Hence the "weird error message" reports
we get here when people are using their old IB or Fb 1 client setups to
connect to a Fb 1.5 server.


>But then I started looking at the isc_dpb_lc_messages param
>with a mind to telling the interpret calls to use a different
>file, and now I am confused. In order for this parameter to
>have any effect on the client it would need to be extracted
>by the client API, but...
>
>AFAICT setting isc_dpb_lc_messages to a different client file
>is making no difference at all.

It will have to be a file generated from msg.gdb....I guess you thought of
that, and used a renamed firebird.msg? Where did you locate it - server or
client?


>isc_interpret is giving me formatted messages almost regardless
>of what I do with firebird.msg - which I take to mean it is
>reverting to its own internal messages when it cant find
>firebird.msg. Thats OK but makes it hard to see what is going
>on.

The client should except if it can't find firebird.msg in the places it
expects to find it.


>isc_sql_interprete OTOH seems to be always looking for
>firebird.msg in the directory below the application location.
>This cant be right, but I cant seem to discover what is
>actually going on.

So - we are talking about a client-located message file, then? This could
be some sort of coincidence related to the conditionals for building the
embedded server - see P.18 of TFB, at the bottom.

>Can anyone help explain?

Actually, it's not clear what the environment is here...and I don't see
your previous message to refer to.

./heLen