jEDI drivers make it easy to connect jBASE to external data sources 

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


Peter Falson 1 Posts

I’m originally from Sydney and have worked in the MultiValue industry since 1984. In 1989 I wrote a 4GL later used by Sanderson/GA and in the late 90s I developed a jEDI for Oracle using a mixture of C and PL/SQL. In 2001 I moved to Portland, OR and joined jBASE Software focusing on jEDI drivers for various databases. Now at Rocket Software, I work with various jBASE components including jQL, jSQL and jCurl. My interests outside of work include: Sports: soccer, squash (doubles mostly), disc golf, tennis, skiing. Cooking: Indian, Thai (curries); Italian (pasta dishes, pizzas). Hobbies: leather-work. Music: prog rock, keyboards (various tribute bands). Favourite movie: O Lucky Man. Favourite album: Consequences (Godley/Crème).


  • Steve Watson Reply

    June 20, 2022 at 2:15 am

    Hi Peter, I started with Pick in 1984. General Automation Pick. Wrote a travel system called Taurus in it. It was no. 2 travel system in the UK for a while. Astralogic Ltd then Astratis Ltd then decline then mothballs. Worked it on Unidata with Sandersons mainly. Now fancy refactoring it in JBASE or MVIS Unidata in Azure or GCP starting this year. I like the idea of Jbase and MongoDB and maybe relational too. What do you think Obi-wan? I like Python too lol. Are the forces converging in a Jabba way? May it be with you.

Leave a Comment

Your email address will not be published.