Jedi Drivers Make It Easy To Connect jBase to External Data Sources
May 24, 2022
No, we’re not talking about a force involving Midi-chlorians, but a core design of jBASE known as jEDI. The acronym expands to jBASE External Device Interface and interestingly all the native jBASE files that users use day in/day out are based on the jEDI architecture.
J3, J4, J5, JD – to name a few – are all jEDI drivers that handle the bulk of file I/O (OPEN/READ/WRITE to various file types) with the jBASE database.
The key to this design is the premise that from a jBASE file I/O perspective, a data source must support common features including:
Initialization | Write (and WriteV) | CreateFile |
Open | Delete | Sync |
Close | Lock | Disconnect |
SelectStart | Unlock | TransBegin |
SelectEnd | IOCTL | TransCommit |
Readnext | ClearFile | TransAbort |
Read (and ReadV) | DeleteFile | Error |
This architecture allows you to connect jBASE to other databases such as Oracle, DB2, SQL Server, MySQL and more. In fact, jBASE 5.8 includes a MongoDB jEDI driver.
Historically there were two ways to write your own jEDI driver:
- C/C++
- jBC (aka BASIC)
jBASE now ships with a sample/skeleton jEDI program called dynobject.jabba which demonstrates a new way to implement your own jEDI driver using dynamic objects. This is a significant change in that in jBASE’s jabba language, programmers can easily mix jBC and C (if/when the need arises) as opposed to having separate code modules and defining the external C functions in your jBC code.
With this new sample/skeleton jEDI program, there’s nothing stopping you from creating a jEDI driver that interacts with existing jBASE data files – e.g., a header file and detail file – the possibilities are infinite!
Upgrade to jBASE 5.8 today!