Subject | Re: [firebird-support] Re: I can't find the error in this very short SP |
---|---|
Author | Ann W. Harrison |
Post date | 2005-07-27T20:22:34Z |
Adam wrote:
specific stupidity of ISQL. ISQL started its sorry life as a DSQL test
bed - just a dumb tool into which you typed SQL. It took the statement,
prepared it, "described" it, built SQLDA's that matched the description,
and executed the code. It's only "smarts" were recognizing a non-quoted
semicolon as the end of statement. When Borland converted InterBase
from a basically GDML product to SQL, they abandoned the previous query
language QLI, and tried to make ISQL a suitable tool, without changing
its basic mode of operation - find a semicolon, send the statement to
the engine.
It has the most primitive of parsers to recognize SHOW and SET
statements, but not nearly enough to recognize a CREATE PROCEDURE and
start counting begin end blocks and ignoring semicolons until the final
end. Borland made their ISQL smarter in recent versions.
Regards,
Ann
>The semi-colon problem is not part of the Firebird engine. It is a
> The problem is that when Firebird encounters a terminator character,
> it tries to execute that statement. Now obviously triggers and stored
> procedures need to include semi-colons to internally flag that that
> operation is done.
>
specific stupidity of ISQL. ISQL started its sorry life as a DSQL test
bed - just a dumb tool into which you typed SQL. It took the statement,
prepared it, "described" it, built SQLDA's that matched the description,
and executed the code. It's only "smarts" were recognizing a non-quoted
semicolon as the end of statement. When Borland converted InterBase
from a basically GDML product to SQL, they abandoned the previous query
language QLI, and tried to make ISQL a suitable tool, without changing
its basic mode of operation - find a semicolon, send the statement to
the engine.
It has the most primitive of parsers to recognize SHOW and SET
statements, but not nearly enough to recognize a CREATE PROCEDURE and
start counting begin end blocks and ignoring semicolons until the final
end. Borland made their ISQL smarter in recent versions.
Regards,
Ann