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 LongSub PrologCloseQuery (ByVal qid As Long)qid. Please note: 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 Integerqid. 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. Please note: 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 IntegerValue 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 IntegerValue 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 IntegerPrologGetString, 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 IntegerSub 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 LongFunction PrologDeInit() As Long