What is it?

JacQL is a database framework for C++. The advantage over a traditional database is that JacQL\'s source code is incooperated into a project and is therefore directly compiled into the final executable. This means that the database framework is customisable as needed and no database server is required to handle requests from the program. JacQL is very useful in smaller, single-user applications which process big amount of data and need to store and handle this data in a convenient and efficient manner. JacQL is completely based on AVL-Trees and can therefore handle any identifier query in logarithmic time.
A further particularly useful feature of JacQL is the so-called first and second tier relation. These are many-to-many associations for direct and second-grade neighbour tables respectively which are kept up to date automatically. These associations therefore allow lookups of first and second tier relations in O(log n) time, rather than O(n2) time as it is the case in an ordinary database. Furthermore, JacQL allows to define automatic dependencies between tables and takes care of efficient file handling.


Unfortunately, I have not written an extensive manual yet. For the time being please use VocabPusher as an example of how to use JacQL.
In a nutshell you will only #include the JacQL_Header.h file into each table that you wish to define. Whenever you need access to a table in the source code, you will directly #include the corresponding header of this table. Moreover, you will need to amend JacQL_Custom.h and JacQL_Custom.cpp to fit your project.

Known Issues

None, however there is currently no native support for OR queries.

Source Code

Please download the zip archive below and place all source and header files directly into your project. Do not forget to include them into the dependencies.

Archive file icon Source Code - JacQL (ZIP-Archive)