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