[scriptable, uuid(20c45bdd-51d4-4f07-b70e-5feaa6302197)]
interface mozIStorageStatement : mozIStorageValueArray
Constants
The current state. Row getters are only valid while the statement is in the "executing" state.
const
long
MOZ_STORAGE_STATEMENT_INVALID = 0
const
long
MOZ_STORAGE_STATEMENT_READY = 1
const
long
MOZ_STORAGE_STATEMENT_EXECUTING = 2
Attributes
Number of columns returned
readonly attribute
unsigned long
columnCount
readonly attribute
unsigned long
parameterCount
readonly attribute
long
state
Methods
void
bindBlobParameter(in unsigned long aParamIndex, [const, array, size_is(aValueSize)] in octet aValue, in unsigned long aValueSize)
void
bindDoubleParameter(in unsigned long aParamIndex, in double aValue)
void
bindInt32Parameter(in unsigned long aParamIndex, in long aValue)
void
bindInt64Parameter(in unsigned long aParamIndex, in long long aValue)
void
bindNullParameter(in unsigned long aParamIndex)
Binds the array of parameters to the statement. When executeAsync is
called, all the parameters in aParameters are bound and then executed.
@param aParameters
The array of parameters to bind to the statement upon execution.
void
bindParameters(in mozIStorageBindingParamsArray aParameters)
void
bindStringParameter(in unsigned long aParamIndex, in AString aValue)
Bind the given value to the parameter at aParamIndex. Index 0 denotes the first numbered argument or ?1.
void
bindUTF8StringParameter(in unsigned long aParamIndex, in AUTF8String aValue)
Create a clone of this statement, by initializing a new statement with the same connection and same SQL statement as this one. It does not preserve statement state; that is, if a statement is being executed when it is cloned, the new statement will not be executing.
mozIStorageStatement
clone()
Escape a string for SQL LIKE search.
@param aValue the string to escape for SQL LIKE
@param aEscapeChar the escape character
@returns an AString of an escaped version of aValue
(%, _ and the escape char are escaped with the escape char)
For example, we will convert "foo/bar_baz%20cheese"
into "foo//bar/_baz/%20cheese" (if the escape char is '/').
@note consumers will have to use same escape char
when doing statements such as: ...LIKE '?1' ESCAPE '/'...
AString
escapeStringForLIKE(in AString aValue, in wchar aEscapeChar)
Execute the query, ignoring any results. This is accomplished by calling step() once, and then calling reset(). Error and last insert info, etc. are available from the mozStorageConnection.
void
execute()
Execute a query, using any currently-bound parameters. Reset is called
when no more data is returned. This method is only available to JavaScript
consumers.
@returns a boolean indicating whether there are more rows or not.
boolean step();
Obtains the current list of named parameters, which are settable. This
property is only available to JavaScript consumers.
readonly attribute mozIStorageStatementParams params;
Obtains the current row, with access to all the data members by name. This
property is only available to JavaScript consumers.
readonly attribute mozIStorageStatementRow row;
Execute a query asynchronously using any currently bound parameters. This
statement can be reused immediately, and reset does not need to be called.
Note: If you have any custom defined functions, they must be re-entrant
since they can be called on multiple threads.
@param aCallback [optional]
The callback object that will be notified of progress, errors, and
completion.
@returns an object that can be used to cancel the statements execution.
mozIStoragePendingStatement
executeAsync([optional] in mozIStorageStatementCallback aCallback)
Execute a query, using any currently-bound parameters. Reset must be called on the statement after the last call of executeStep. @returns a boolean indicating whether there are more rows or not; row data may be accessed using mozIStorageValueArray methods on the statement.
boolean
executeStep()
Finalizes a statement so you can successfully close a database connection. This method does not need to be used from native callers since you can just set the statement to null, but is extremely useful to JS callers.
void
finalize()
Obtains the declared column type of a prepared statement.
@param aParamIndex The zero-based index of the column who's declared type
we are interested in.
@returns the declared index type.
AUTF8String
getColumnDecltype(in unsigned long aParamIndex)
Obtains the index of the column with the specified name. @param aName The name of the column. @return The index of the column with the specified name.
unsigned long
getColumnIndex(in AUTF8String aName)
Name of nth column
AUTF8String
getColumnName(in unsigned long aColumnIndex)
Returns the index of the named parameter.
@param aName
The name of the parameter you want the index for. This does not
include the leading ':'.
@returns the index of the named parameter.
unsigned long
getParameterIndex(in AUTF8String aName)
Name of nth parameter, if given
AUTF8String
getParameterName(in unsigned long aParamIndex)
Creates a new mozIStorageBindingParamsArray that can be used to bind
multiple sets of data to a statement.
@returns a mozIStorageBindingParamsArray that multiple sets of parameters
can be bound to.
mozIStorageBindingParamsArray
newBindingParamsArray()
Reset parameters/statement execution
void
reset()
Compare to: