Libraries.Data.Database.Insert Documentation

The Insert query represents the INSERT INTO command of the SQL (Structured Query Language) language. This query allows for data manipulation by inserting new rows into a table.

Example Code

use Libraries.Data.Database.Database
use Libraries.Data.Database.Insert

Database database
database:Connect("localhost", "myDatabase", "user", "SuperSecret456")

Insert query
query:SetTable("Orders")
query:Add("orderNumber", 12)
query:Add("price", 9.50)
query:Add("status", "Processing")

database:Insert(query)

Inherits from: Libraries.Language.Object, Libraries.Data.Database.Query, Libraries.Data.Database.Support.RemappableName

Actions Documentation

Add(text column, number value)

Add a column target along with the value that will be associated to it.

Parameters

  • text column: The name of the column to which the value will belong to
  • number value: The value to insert under the named column

Example

use Libraries.Data.Database.Insert

Insert query
query:SetTable("Orders")
query:Add("price", 9.50)

Add(text column, text value)

Add a column target along with the value that will be associated to it.

Parameters

  • text column: The name of the column to which the value will belong to
  • text value: The value to insert under the named column

Example

use Libraries.Data.Database.Insert

Insert query
query:SetTable("Orders")
query:Add("status", "Processing")

Add(text column, integer value)

Add a column target along with the value that will be associated to it.

Parameters

  • text column: The name of the column to which the value will belong to
  • integer value: The value to insert under the named column

Example

use Libraries.Data.Database.Insert

Insert query
query:SetTable("Orders")
query:Add("orderNumber", 115)

Add(text column, boolean value)

Add a column target along with the value that will be associated to it.

Parameters

  • text column: The name of the column to which the value will belong to
  • boolean value: The value to insert under the named column

Example

use Libraries.Data.Database.Insert

Insert query
query:SetTable("Orders")
query:Add("shipped", false)

AddMessageDigestAlgorithm5(text column, text value)

Add a column target along with a value that will be hashed using MD5.

Parameters

  • text column: The name of the column to which the value will belong to
  • text value: The value to insert under the named column

Example

use Libraries.Data.Database.Insert

Insert query
query:SetTable("files")
query:AddMessageDigestAlgorithm5("hash", "my message")

AddNameRemap(text newName, Libraries.Data.Database.Support.RemappableName original)

Adds objects that have been remapped to single table for reference in actions called when building the query to text. Examples of RemappableNames are columns, tables, and subqueries.

Parameters

AddPreparedParameter(Libraries.Data.Database.Support.Parameter param)

At the plugin level prepared statements are used to add a layer of security from injection attacks. Every parameter in the prepared paramter array will be stripped from the actual query text and set appropriately at the plugin level.

Parameters

AddSecureHashAlgorithm1(text column, text value)

Add a column target along with a value that will be hashed using SHA1.

Parameters

  • text column: The name of the column to which the value will belong to
  • text value: The value to insert under the named column

Example

use Libraries.Data.Database.Insert

Insert query
query:SetTable("files")
query:AddSecureHashAlgorithm1("hash", "my message")

AddSubquery(text name, Libraries.Data.Database.Find subquery)

Adds a subquery to this query. Only Find queries are supported for now. A Subquery is a query that exists another outer query. An example could be a Find where the table to search through is actually the result of another query.

Parameters

AddTableNameRemap(text table, text newName)

This adds a name that can be used in the place of a table. This action does not set the table of this query but only a name that can be referenced if the table is added.

Parameters

  • text table: The name of the table to set for this query
  • text newName

Example

use Libraries.Data.Database.Find

Find query
query:SetTable("orders", "o")
query:AddTableNameRemap("members", "m")
query:AddInnerJoin("m", "o:name = m:name")

AddTableReference(text table)

Internal. Queries keep track of what tables are referenced to check for ambiguous column names

Parameters

  • text table

AddUndefined(text column)

Add a column target that will be set to undefined.

Parameters

  • text column: The name of the column to set

Example

use Libraries.Data.Database.Insert

Insert query
query:SetTable("Orders")
query:AddUndefined("description")

Compare(Libraries.Language.Object object)

This action compares two object hash codes and returns an integer. The result is larger if this hash code is larger than the object passed as a parameter, smaller, or equal. In this case, -1 means smaller, 0 means equal, and 1 means larger. This action was changed in Quorum 7 to return an integer, instead of a CompareResult object, because the previous implementation was causing efficiency issues.

Parameters

Return

integer: The Compare result, Smaller, Equal, or Larger.

Example

Object o
Object t
integer result = o:Compare(t) //1 (larger), 0 (equal), or -1 (smaller)

ConvertToStructuredQueryLanguage()

This action returns the query as text in Structured Query Language (SQL). Not intended to be used directly by the user, this is more for internals of the API to make calls to the database

Return

text:

Empty()

Removes all columns and values associated with them from the query.

Example

use Libraries.Data.Database.Insert

Insert query
query:SetTable("Orders")
query:Add("price", 9.50)

query:Empty()

EmptyPreparedParameters()

Clears the prepared parameter list. Necessary because running a query again without emptying the list will cause the list of parameters to not shrink

EmptyTableReferences()

Empties the table references hash table.

Equals(Libraries.Language.Object object)

This action determines if two objects are equal based on their hash code values.

Parameters

Return

boolean: True if the hash codes are equal and false if they are not equal.

Example

use Libraries.Language.Object
use Libraries.Language.Types.Text
Object o
Text t
boolean result = o:Equals(t)

Filter(text value)

Some queries make use of the filter which is an expression checked against the values of the columns in the rows of a database table. The filter is written using Quorum syntax and will be type checked to see if it's valid. Column names can be used and the names made by the user using name remaps. An example filter would be "priority < 4" where priority is a column that exists and can be mapped to an integer.

Parameters

  • text value: The expression to be used in the query

Example

use Libraries.Data.Database.Delete

Delete query
query:SetTable("orders")
query:Filter("priority < 4")

GetDatabaseMetaData()

Returns the meta data object set for this query

Return

Libraries.Data.Database.DatabaseMetaData:

GetHashCode()

This action gets the hash code for an object.

Return

integer: The integer hash code of the object.

Example

Object o
integer hash = o:GetHashCode()

GetIgnore()

Add a column target along with the value that will be associated to it.

Return

boolean: Returns true if the query will ignore errors when inserting and continue to keep the program running

Example

use Libraries.Data.Database.Insert

Insert query
query:SetTable("Orders")
query:Add("orderNumber", 115)

query:SetIgnore(true)
output query:GetIgnore()

GetNameRemaps()

Grabs the table containing all aliases that have been set in this query

Return

Libraries.Containers.HashTable:

GetPreparedParameters()

Used at the plugin level to get all parameters that need to be set in the prepared statement

Return

Libraries.Containers.Array:

GetRawFilter()

Returns the filter as given by the user. The filter will be converted to a syntax accepted by the database server and this action returns whatever the user originally typed

Return

text:

GetRemappedName()

Returns the alias

Return

text:

GetTable()

Returns the table this query is meant to be ran against

Return

text:

GetTableReferences()

Internal. Used by other actions to grab what tables are referenced to check if column names are valid.

Return

Libraries.Containers.HashTable:

GetTranslatedFilter()

Returns the filter as translated by the quorum compiler. The filter will be converted to a syntax accepted by the database server and this action returns whatever the user originally typed

Return

text:

HasColumn(text name)

This action checks if the query has a column specifically named within it.

Parameters

  • text name

Return

boolean:

Example

use Libraries.Data.Database.Insert

Insert query
query:SetTable("Orders")
query:Add("price", 9.50)

boolean hasPrice = query:HasColumn("price")

RemoveColumn(text name)

This action removes a column and the value associated with it

Parameters

  • text name: The name of the column to remove

Return

boolean: Returns true if the column and value was removed and false if it was not removed.

Example

use Libraries.Data.Database.Insert

Insert query
query:SetTable("Orders")
query:Add("price", 9.50)

query:RemoveColumn("price")

SetDatabaseMetaData(Libraries.Data.Database.DatabaseMetaData meta)

Sets the DatabaseMetaData for this query. This is necessary for checking things like if a table referenced exists or if a filter has valid column references.

Parameters

SetIgnore(boolean ignore)

Sets the query to ignore errors when inserting a record. This is useful when inserting into a column where each value must be unique. If ignore is true and there is a duplicate entry then the program won't throw an error.

Parameters

  • boolean ignore: If true the query will ignore errors on inserting, otherwise an error while throw an error

Example

use Libraries.Data.Database.Insert

Insert query
query:SetTable("Orders")
query:Add("orderNumber", 115)

query:SetIgnore(true)

SetRemappedName(text remappedName)

Sets the alias

Parameters

  • text remappedName

SetTable(text table)

This action sets the table of the query. Most queries run against a single table and this action is used to set which table the query will affect or search.

Parameters

  • text table: The name of the table to set for this query

Example

use Libraries.Data.Database.Find

Find query
query:SetTable("members")

SetTable(text table, text newName)

This action sets the table of the query. Most queries run against a single table and this action is used to set which table the query will affect or search. This action also lets you rename the table so in filters a different name can be used.

Parameters

  • text table: The name of the table to set for this query
  • text newName

Example

use Libraries.Data.Database.Find

Find query
query:SetTable("members", "m")

SetTableWithName(text table, text newName)

This action sets the table of the query. Most queries run against a single table and this action is used to set which table the query will affect or search. This action also lets you rename the table so in filters a different name can be used.

Parameters

  • text table: The name of the table to set for this query
  • text newName

Example

use Libraries.Data.Database.Find

Find query
query:SetTableWithName("members", "m")

ToText()

By default convert to structured query language.

Return

text: