Read about scripting
Return a table of all the columns returned by an SQL statement
View list of data type meanings
VARIANT DatabaseColumnNames(BSTR DbName);
You can use this, after successfully doing a DatabasePrepare, to find the names of columns that each row will return.
You can do this before doing a DatabaseStep, because the column names (and number of columns) is a property of the SQL statement, whether or not any rows are found that actually match the query.
The column name is the name given in the "AS" clause in the query, if any. Otherwise SQLite assigns a column name, which is not guaranteed to be consistent between versions. Often the column name will simply be the name of the variable being queried, however calculations may return generated names.
For example, using this SQL statement:
DatabasePrepare ("db", "SELECT name AS 'weapon name', damage * 5 from weapons")
The returned column names were 'weapon name' and 'damage * 5'.
Columns start at 1 for the first column, up to the number returned by DatabaseColumns.
Also see DatabaseColumnName which returns an entry for a single column.
Available in MUSHclient version 4.40 onwards.
DatabasePrepare ("db", "SELECT * from weapons")
t = DatabaseColumnNames ("db") --> the names of all columns
Lua returns nil if there are no columns.
A table of all the column names, indexed by column number (ie. 1 is the first column).
See Also ...
Lua SQLite (database) interface
(DatabaseChanges) Returns a count of the changes to the database by the most recent SQL statement
(DatabaseClose) Closes an SQLite database
(DatabaseColumnName) Find the name of a specified column returned by an SQL statement
(DatabaseColumns) Find how many columns will be returned by an SQL statement
(DatabaseColumnText) Returns the contents of an SQL column, as text
(DatabaseColumnType) Returns the type of data in an SQL column
(DatabaseColumnValue) Returns the contents of an SQL column, as text, float, integer, or null
(DatabaseColumnValues) Returns the contents of all the SQL columns after a step
(DatabaseError) Returns an English string describing the most recent SQL error
(DatabaseExec) Executes SQL code against an SQLite database
(DatabaseFinalize) Finalizes (wraps up) a previously-prepared SQL statement
(DatabaseGetField) Returns a single field from an SQL database
(DatabaseInfo) Returns information about a database
(DatabaseLastInsertRowid) Returns the most recently automatically allocated database key
(DatabaseList) Lists all databases
(DatabaseOpen) Opens an SQLite database
(DatabasePrepare) Prepares an SQL statement for execution
(DatabaseReset) Resets a previously-prepared SQL statement to the start
(DatabaseStep) Executes a previously-prepared SQL statement
(DatabaseTotalChanges) Returns a count of the total changes to the database
(Help topic: function=DatabaseColumnNames)