In this section you will find a summary of the functions and procedures of the Visual Basic interface:
Function PrologOpenQuery (ByVal Goal As String) As Long
Sub PrologCloseQuery (ByVal qid As Long)
qid
. Important: if qid
is not the
innermost query (i.e. the one opened last), then all more
recently opened queries are closed as well.
Function PrologNextSolution(ByVal qid As Long) As Integer
qid
. Returns 1 on success, 0 on
failure, -1 on error. In case of an erroneous execution, the Prolog
exception raised can be retrieved with the PrologGetException
procedure. Important: Several queries may be open at the same
time, however, if qid
is not the innermost query,
then all more recently opened queries are implicitly closed.
Function PrologGetLong(ByVal qid As Long, ByVal VarName As String, Value As Long) As Integer
Value
the integer value bound to the
variable VarName
of the query identified by qid
, as
an integer. That is, the value of the given variable is converted to an
integer. Returns 1 on success, i.e. if the given goal assigned
an integer value to the variable; otherwise, it returns 0. If an error
occurred it returns -1, e.g. if an invalid qid
was used.
Function PrologGetString(ByVal qid As Long, Val VarName As String, Value As String) As Integer
Value
the string value bound to a variable
VarName
of the query, as a string. That is, the value
assigned to the given variable is written out into an internal
stream by the write/2
Prolog predicate, and the
characters output to this stream will be transferred to Visual
Basic as a string. Retuns 1 on success, i.e. if the given goal
assigned a value to the variable; otherwise, it returns 0. If an error
occurred it returns -1, e.g. if an invalid qid
was used.
Function PrologGetStringQuoted(ByVal qid As Long, ByVal VarName As String, Value As String) As Integer
PrologGetString
, but conversion uses Prolog
writeq/2
. Returns 1 on success, i.e. if the given goal
assigned a value to the variable; otherwise, it returns 0. If an error
occurred it returns -1, e.g. if an invalid qid
was used.
Function PrologQueryCutFail (ByVal Goal As String) As Integer
Sub PrologGetException(ByRef Exc As String)
Exc
string as if written by the writeq/2
predicate. If there is no exception available then the empty
string is returned.
Function PrologInit() As Long