Subject | EXECUTE STATEMENT ON EXTERNAL 'ODBC://odbc_datasource_name' |
---|---|
Author | |
Post date | 2014-08-30T10:25:50Z |
Hi,
Should the Execute statement work on an ODBC datasource already with FB 3.0?
EXECUTE BLOCK AS
BEGIN
EXECUTE STATEMENT 'SELECT * FROM TEST_TABLE'
ON EXTERNAL 'ODBC://TEST';
END
I receive the following error message:
Execute statement error at attach :335544721 : Unable to complete network request to host "ODBC".
335544704 : Failed to locate host machine.
335544706 : The specified name was not found in the hosts file or Domain Name Services.
Data source : Firebird::ODBC://TEST.
It seems prefix ODBC is not recognized and interpreted as hostname.
I read about this feature in the presentation 'Firebird 3: provider - based architecture, plugins and OO approach to API' from Alex Peshkov (http://www.firebirdsql.org/file/community/ppts/fbcon11/Firebird3Plugins2011.pdf).
In the release notes (http://web.firebirdsql.org/download/prerelease/rlsnotes/Firebird-3.0.0_Alpha1-ReleaseNotes.pdf) I read:
The ability to access foreign database engines using providers should not be overlooked, either. It might seem
strange to consider this, given the number of tools available for this sort of task. Think about the ability to
access other Firebird databases using EXECUTE STATEMENT, that became available in Firebird 2.5. With
a provider to ODBC or other common tool to access various data sources it is within reach to use EXECUTE
STATEMENT to get direct access from procedures and triggers, to data from any database having a driver for
the chosen access tool. It is even possible to have a provider to access some particular type of foreign database engine if there is some reason to want to avoid the ODBC layer.
Or did I misinterpret 'is within reach'?
Kind regards,
Bert
Should the Execute statement work on an ODBC datasource already with FB 3.0?
EXECUTE BLOCK AS
BEGIN
EXECUTE STATEMENT 'SELECT * FROM TEST_TABLE'
ON EXTERNAL 'ODBC://TEST';
END
I receive the following error message:
Execute statement error at attach :335544721 : Unable to complete network request to host "ODBC".
335544704 : Failed to locate host machine.
335544706 : The specified name was not found in the hosts file or Domain Name Services.
Data source : Firebird::ODBC://TEST.
It seems prefix ODBC is not recognized and interpreted as hostname.
I read about this feature in the presentation 'Firebird 3: provider - based architecture, plugins and OO approach to API' from Alex Peshkov (http://www.firebirdsql.org/file/community/ppts/fbcon11/Firebird3Plugins2011.pdf).
In the release notes (http://web.firebirdsql.org/download/prerelease/rlsnotes/Firebird-3.0.0_Alpha1-ReleaseNotes.pdf) I read:
The ability to access foreign database engines using providers should not be overlooked, either. It might seem
strange to consider this, given the number of tools available for this sort of task. Think about the ability to
access other Firebird databases using EXECUTE STATEMENT, that became available in Firebird 2.5. With
a provider to ODBC or other common tool to access various data sources it is within reach to use EXECUTE
STATEMENT to get direct access from procedures and triggers, to data from any database having a driver for
the chosen access tool. It is even possible to have a provider to access some particular type of foreign database engine if there is some reason to want to avoid the ODBC layer.
Or did I misinterpret 'is within reach'?
Kind regards,
Bert