Skip to content

Latest commit

 

History

History
57 lines (36 loc) · 1.92 KB

README.md

File metadata and controls

57 lines (36 loc) · 1.92 KB

ODBC Extension

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.

Building

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

Notes

  • ODBC Data Source Names (DSN) have a maximum length of 32 characters. They can be ASCII characters except for spaces and [ ] { } , ; ? * = ! @ \

License

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

Future Directions

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.