LPA Prodata Database Interface

This document describes the Prodata Database Interface toolkit which is available for WIN-PROLOG. The Prodata Database Interface provides a tight coupling between the WIN-PROLOG environment and various commercial database systems based on ODBC (Open Database Connectivity). No prior knowledge of SQL or any other query language is required to use the interface, although the facility to run any SQL command is provided as part of the package.

Seamless integration

This toolkit allows tables to be accessed from WIN-PROLOG as though they existed within the Prolog environment as asserted facts. Prolog clauses can be easily attached to database tables. This facilitates the use of rules over the contents of the database, with no need to download any part of the database. All database accesses are done transparently on-the-fly, with backtracking, cut, and other standard Prolog mechanisms working identically over both the external and the internal Prolog database.

Multiple programming paradigms

This software architecture allows a completely different style of database programming that leaves fourth generation languages way behind. All the benefits inherent in Prolog development can now be transferred to the database field. Prolog prototypes written for database applications no longer need to remain as prototypes: they can now access the main external database by the simple addition of one directive for each table accessed. In particular Prodata offers the following functionality:

  • Concurrent access and update, with program control
  • Transparent data access
  • Automatic use of indexes
  • Automatic data conversions
  • Full access to the data dictionary, for those systems which have one
  • Execution of arbitrary SQL commands
  • Simultaneous connections to multiple DBMS allowing table joins across systems

SQL execution

The provision of a general SQL command processor means that any database function not explicitly provided for in the interface can be carried out from within WIN-PROLOG, such as creating tables, enrolling users or allocating access rights - in fact whatever may be achieved via normal SQL.


The interface can access ODBC drivers for most commercial databases including: Microsoft Access, Btrieve, dBase, Ingres, Netware SQL, Oracle, Paradox, Progress, SQLBase, SQL Server, Sybase and more.


LPA is working on a Unicode version of Prodata to go with the recently released Unicode version of WIN-PROLOG; check with LPA for availability.