Search Rocket site

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:

  1. C/C++
  2. 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!