Schnittstelle zwischen SWI-Prolog und Informix-SQL

(C) by Jurij Kostasenko

Datenübergabe findet auf drei verschiedene Weise statt:

  1. Die Anfrage liefert nur ein Ergebnis: Übergabe erfolgt ueber direkte Parameter
  2. Die Anfrage liefert mehrere Ergebnisse: Übergabe erfolgt durch "assert", mittels Prolog-Calls
  3. Die Anfrage liefert mehrere Ergebnisse: Übergabe erfolgt durch eine Datei

++ Die vierte Möglichkeit der Datenübergabe erfolgt direkt über das Standart Output.


Definition eines Prologpraedikates für einen allgemeinen Zugriff auf die Informix Datenbanken

Form des Prädikates:

sql_pl(+Anfrageart,+Dateiname,+Praedikatname,+Datenbank,+Anfrage,-Fehlernummer,-Ergebnis)

dabei sind:

Eingaben

Anfrageart: ist die vom Benutzer gewählte Anfrageart

0 : automatische Auswahl der Datenübergabe

1 : Daten nur auf standart Output (user_output) ausgeben

2 : Nur den ersten gefundenen Datensatz direkt über -Ergebnis übergeben

3 : Daten in der Prologdatenenbasis speichern

4 : Daten in einer externen Zwischendatei speichern

Datenbank : der Name der auszuwählenden Datenbank

Anfrage : die Anfrageklausel

Ausgaben

Fehlernummer : Codenummer der sqlca Variablen (0=ok, 0< = Fehler, 0> = OK! )

Ergebnis : Anfrageergebnis bei Fehlernummer=0

pl_sql_pl(option,qdbase,query,error,result)

term option,dbase,query,error,result;


INTERFACE-FUNCTION: pl_sql_pl/5

foreign_t

pl_sql_pl(option,filename,clausename,dbase,query,error_db,result)

term option,filename,clausename,dbase,query,error_db,result;