DVX_GUI/sdk/include/basic/sql.bas

53 lines
2.1 KiB
QBasic

' sql.bas -- SQL Database Library for DVX BASIC
'
' Provides SQLite database access through DECLARE LIBRARY wrappers.
' Handles and cursors are integers; strings are passed by value.
'
' Usage: Add this file to your project.
DECLARE LIBRARY "basrt"
' Open a database file. Returns a handle (>0), or 0 on failure.
DECLARE FUNCTION SQLOpen(BYVAL path AS STRING) AS INTEGER
' Close a database.
DECLARE SUB SQLClose(BYVAL db AS INTEGER)
' Execute a non-query SQL statement. Returns True on success.
DECLARE FUNCTION SQLExec(BYVAL db AS INTEGER, BYVAL sql AS STRING) AS INTEGER
' Return the last error message for a database.
DECLARE FUNCTION SQLError$(BYVAL db AS INTEGER) AS STRING
' Execute a query and return a result set cursor.
DECLARE FUNCTION SQLQuery(BYVAL db AS INTEGER, BYVAL sql AS STRING) AS INTEGER
' Advance the cursor to the next row. Returns True if a row is available.
DECLARE FUNCTION SQLNext(BYVAL rs AS INTEGER) AS INTEGER
' Test whether the cursor is past the last row.
DECLARE FUNCTION SQLEof(BYVAL rs AS INTEGER) AS INTEGER
' Return the number of columns in a result set.
DECLARE FUNCTION SQLFieldCount(BYVAL rs AS INTEGER) AS INTEGER
' Return a column name by index (0-based).
DECLARE FUNCTION SQLFieldName$(BYVAL rs AS INTEGER, BYVAL col AS INTEGER) AS STRING
' Return a column value as text by index (0-based).
DECLARE FUNCTION SQLFieldText$(BYVAL rs AS INTEGER, BYVAL col AS INTEGER) AS STRING
' Return a column value as text by column name.
DECLARE FUNCTION SQLField$(BYVAL rs AS INTEGER, BYVAL colName AS STRING) AS STRING
' Return a column value as an integer by index (0-based).
DECLARE FUNCTION SQLFieldInt(BYVAL rs AS INTEGER, BYVAL col AS INTEGER) AS INTEGER
' Return a column value as a double by index (0-based).
DECLARE FUNCTION SQLFieldDbl(BYVAL rs AS INTEGER, BYVAL col AS INTEGER) AS DOUBLE
' Free a result set cursor.
DECLARE SUB SQLFreeResult(BYVAL rs AS INTEGER)
' Return the number of rows affected by the last INSERT/UPDATE/DELETE.
DECLARE FUNCTION SQLAffected(BYVAL db AS INTEGER) AS INTEGER
END DECLARE