' 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