ODBC is an abstraction layer for communicating with databases, originating from Microsoft in the 1990s but commonly available on Linux and other platforms as well:
https://en.wikipedia.org/wiki/Open_Database_Connectivity
Integration with ODBC was a commercial feature of Rebol2/Command:
http://www.rebol.com/docs/database.html
Though it was not included in R3-Alpha, Christian Ensel published code to interface with "hostkit" to provide some of the functionality:
https://github.com/gurzgri/r3-odbc/
That code was taken as the starting point for developing an ODBC extension against the modern "libRebol" API. In November of 2023, it achieved the goal of compiling solely against the external API, without access to any internal structures or functions.
If you are using Windows, the ODBC headers are typically included by default (e.g. in Visual Studio).
On Linux, you will need unixodbc
, but specifically the development library.
The command on Debian to get these is:
sudo apt install unixodbc-dev
On Mac, it seems HomeBrew will install the headers when you merely say:
brew install unixodbc
- ODBC Data Source Names (DSN) have a maximum length of 32 characters. They can be ASCII characters except for spaces and [ ] { } , ; ? * = ! @ \
The original code from which this extension is derived is Copyright (C) Christian Ensel 2010-2012, and was under an "As Is" License.
Subsequent modifications are Copyright (C) 2012-2024 Rebol Open Source Contributors, and the extension is licensed under the Lesser GPL 3.0
https://www.gnu.org/licenses/lgpl-3.0.html
Right now if you build a Rebol with the ODBC extension statically, then that Rebol will require the ODBC shared libraries or DLLs to be present on the target machine to run. It would be nice if this could be decoupled such that if ODBC was not present, it would still be able to run Rebol.