DbQuery: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 24: | Line 24: | ||
==Example== | ==Example== | ||
This example starts an INSERT query | This example starts an INSERT query and frees the result: | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
local qh = dbQuery ( connection, "INSERT INTO table_name VALUES (?,?,?)", "aaa", "bbb", 10 ) | local qh = dbQuery( connection, "INSERT INTO table_name VALUES (?,?,?)", "aaa", "bbb", 10 ) | ||
dbFree( qh ) | |||
</syntaxhighlight> | |||
This example starts a select query and waits for the result: (server freeze included) | |||
<syntaxhighlight lang="lua"> | |||
local qh = dbQuery( connection, "SELECT * FROM table_name" ) | |||
local result = dbPoll( qh, -1 ) | |||
</syntaxhighlight> | |||
This example starts a select query and processes the result in a callback function: | |||
<syntaxhighlight lang="lua"> | |||
function aaa() | |||
dbQuery( myCallback, connection, "SELECT * FROM table_name" ) | |||
end | |||
function myCallback(qh) | |||
local result = dbPoll( qh, 0 ) -- Timeout doesn't matter here because the result will always be ready | |||
end | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 18:51, 27 October 2011
Available only in MTA SA 1.1.1 r3328 and onwards This function starts a database query using the supplied connection. Use the returned query handle with dbPoll to get the result, or dbFree if you don't want the result.
Syntax
handle dbQuery ( [ function callbackFunction, ] element databaseConnection, string query [, var param1 [, var param2 ...]] )
Required Arguments
- databaseConnection: An database connection element previously returned from dbConnect
- query: An SQL query. Positions where parameter values will be inserted are marked with a "?".
Optional Arguments
- callbackFunction: An optional function to be called when a result is ready. The function will only be called if the result has not already been read with dbPoll. The function is called with one argument which is the query handle. (Notice: Do not use a 'local' function, it must be global!)
- paramX: A variable number of parameters. These must be strings or numbers - it is important to make sure they are of the correct type. Also, the number of parameters passed must be equal to the number of "?" characters in the query string.
String parameters are automatically escaped as required
Returns
Returns a query handle unless the connection is incorrect, in which case it return false.
Example
This example starts an INSERT query and frees the result:
local qh = dbQuery( connection, "INSERT INTO table_name VALUES (?,?,?)", "aaa", "bbb", 10 ) dbFree( qh )
This example starts a select query and waits for the result: (server freeze included)
local qh = dbQuery( connection, "SELECT * FROM table_name" ) local result = dbPoll( qh, -1 )
This example starts a select query and processes the result in a callback function:
function aaa() dbQuery( myCallback, connection, "SELECT * FROM table_name" ) end function myCallback(qh) local result = dbPoll( qh, 0 ) -- Timeout doesn't matter here because the result will always be ready end
Requirements
This template will be deleted.
See Also