Please somebody answer this question.
As far as I know, there are only three ways to feed any sort of SQL =
statement into Firebird.
[1] Put the statements into your program as if they were source code, =
then feed the file through gpre. gpre generates a program that can then =
be compiled in the normal way and executed. This is called Embedded SQL, =
or ESQL for short.
[2] Feed the statements into some other program which is executing. =
These statements are handed to the API as-is; the API handles the =
parsing and decoding of the statements as well as executing them when =
appropriate. This is called Dynamic SQL, or DSQL.=20
[3] Put the SQL statements into a procedure and store the procedure on =
the server and call the procedure. There doesn't seem to be a special =
name for this; I'd call it "SSQL" for "Server-side SQL".
AFAIK, except for ESQL and server-side procedures, everything is DSQL. =
The stuff you type into isql is DSQL plus a few extra commands like =
"SHOW TABLES" (but never any extra syntax on existing DSQL statements). =
The stuff you type into IBConsole is fed to isql so it's essentially the =
same language. Where the API takes SQL statements they are DSQL =
statements.
I ask because the documentation refers to "SQL", as in "This is the =
syntax for SQL, and this other thing is the syntax for DSQL", and I'm =
not sure what "SQL" means when used that way.
I propose that we limit the use of the word "SQL" to that which is =
applicable to all input channels; e.g. "The SQL CONNECT statment". When =
we give syntax, if we say "SQL" it should apply to all contexts. If the =
contexts require different syntax, we should list the contexts and not =
refer to some of them as SQL and the others as DSQL. For example
SQL CONNECT statement:
syntax for DSQL ...
syntax for ESQL and SSQL ...
Can anyone please help me to identify all of the separate contexts that =
we need to track separately in the SQL syntax chapter? Thank you.
|