|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.trolltech.qt.internal.QSignalEmitterInternal
com.trolltech.qt.QSignalEmitter
com.trolltech.qt.QtJambiObject
com.trolltech.qt.sql.QSqlResult
public abstract class QSqlResult
The QSqlResult class provides an abstract interface for accessing data from specific SQL databases. Normally, you would use QSqlQuery
instead of QSqlResult, since QSqlQuery
provides a generic wrapper for database-specific implementations of QSqlResult.
If you are implementing your own SQL driver (by subclassing QSqlDriver
), you will need to provide your own QSqlResult subclass that implements all the pure virtual functions and other virtual functions that you need.
QSqlDriver
.
Nested Class Summary | |
---|---|
static class |
QSqlResult.BindingSyntax
This enum type specifies the different syntaxes for specifying placeholders in prepared queries. |
static class |
QSqlResult.VirtualHookOperation
|
Nested classes/interfaces inherited from class com.trolltech.qt.QSignalEmitter |
---|
QSignalEmitter.AbstractSignal, QSignalEmitter.Signal0, QSignalEmitter.Signal1, QSignalEmitter.Signal2, QSignalEmitter.Signal3, QSignalEmitter.Signal4, QSignalEmitter.Signal5, QSignalEmitter.Signal6, QSignalEmitter.Signal7, QSignalEmitter.Signal8, QSignalEmitter.Signal9 |
Nested classes/interfaces inherited from class com.trolltech.qt.internal.QSignalEmitterInternal |
---|
com.trolltech.qt.internal.QSignalEmitterInternal.AbstractSignalInternal |
Field Summary |
---|
Fields inherited from class com.trolltech.qt.internal.QSignalEmitterInternal |
---|
currentSender |
Constructor Summary | |
---|---|
protected |
QSqlResult(QSqlDriver db)
Creates a QSqlResult using database driver db. |
Method Summary | |
---|---|
protected void |
addBindValue(java.lang.Object val,
QSql.ParamType type)
Binds the value val of parameter type paramType to the next available position in the current record (row). |
protected void |
addBindValue(java.lang.Object val,
QSql.ParamTypeFlag[] type)
|
protected int |
at()
Returns the current (zero-based) row position of the result. |
protected QSqlResult.BindingSyntax |
bindingSyntax()
Returns the binding syntax used by prepared queries. |
protected void |
bindValue(int pos,
java.lang.Object val,
QSql.ParamType type)
Binds the value val of parameter type paramType to position index in the current record (row). |
protected void |
bindValue(int pos,
java.lang.Object val,
QSql.ParamTypeFlag[] type)
|
protected void |
bindValue(java.lang.String placeholder,
java.lang.Object val,
QSql.ParamType type)
Binds the value val of parameter type paramType to the placeholder name in the current record (row). |
protected void |
bindValue(java.lang.String placeholder,
java.lang.Object val,
QSql.ParamTypeFlag[] type)
|
protected QSql.ParamType |
bindValueType(int pos)
Returns the parameter type for the value bound at position index. |
protected QSql.ParamType |
bindValueType(java.lang.String placeholder)
Returns the parameter type for the value bound with the given placeholder name. |
protected java.lang.Object |
boundValue(int pos)
Returns the value bound at position index in the current record (row). |
protected java.lang.Object |
boundValue(java.lang.String placeholder)
Returns the value bound by the given placeholder name in the current record (row). |
protected int |
boundValueCount()
Returns the number of bound values in the result. |
protected java.lang.String |
boundValueName(int pos)
Returns the name of the bound value at position index in the current record (row). |
protected java.util.List |
boundValues()
Returns a vector of the result's bound values for the current record (row). |
protected void |
clear()
Clears the entire result set and releases any associated resources. |
protected abstract java.lang.Object |
data(int i)
Returns the data for field index in the current row as a QVariant . |
protected QSqlDriver |
driver()
Returns the driver associated with the result. |
protected boolean |
exec()
Executes the query, returning true if successful; otherwise returns false. |
protected java.lang.String |
executedQuery()
Returns the query that was actually executed. |
protected abstract boolean |
fetch(int i)
Positions the result to an arbitrary (zero-based) row index. |
protected abstract boolean |
fetchFirst()
Positions the result to the first record (row 0) in the result. |
protected abstract boolean |
fetchLast()
Positions the result to the last record (last row) in the result. |
protected boolean |
fetchNext()
Positions the result to the next available record (row) in the result. |
protected boolean |
fetchPrevious()
Positions the result to the previous record (row) in the result. |
java.lang.Object |
handle()
Returns the low-level database handle for this result set wrapped in a QVariant or an invalid QVariant if there is no handle. |
protected boolean |
hasOutValues()
Returns true if at least one of the query's bound values is a QSql.:Out or a QSql::InOut ; otherwise returns false. |
protected boolean |
isActive()
Returns true if the result has records to be retrieved; otherwise returns false. |
protected boolean |
isForwardOnly()
Returns true if you can only scroll forward through the result set; otherwise returns false. |
protected abstract boolean |
isNull(int i)
Returns true if the field at position index in the current row is null; otherwise returns false. |
protected boolean |
isSelect()
Returns true if the current result is from a SELECT statement; otherwise returns false. |
protected boolean |
isValid()
Returns true if the result is positioned on a valid record (that is, the result is not positioned before the first or after the last record); otherwise returns false. |
protected QSqlError |
lastError()
Returns the last error associated with the result. |
protected java.lang.Object |
lastInsertId()
Returns the object ID of the most recent inserted row if the database supports it. |
protected java.lang.String |
lastQuery()
Returns the current SQL query text, or an empty string if there isn't one. |
protected abstract int |
numRowsAffected()
Returns the number of rows affected by the last query executed, or -1 if it cannot be determined or if the query is a SELECT statement. |
protected boolean |
prepare(java.lang.String query)
Prepares the given query for execution; the query will normally use placeholders so that it can be executed repeatedly. |
protected QSqlRecord |
record()
Returns the current record if the query is active; otherwise returns an empty QSqlRecord . |
protected abstract boolean |
reset(java.lang.String sqlquery)
Sets the result to use the SQL statement query for subsequent data retrieval. |
protected boolean |
savePrepare(java.lang.String sqlquery)
Prepares the given query, using the underlying database functionality where possible. |
protected void |
setActive(boolean a)
This function is provided for derived classes to set the internal active state to active. |
protected void |
setAt(int at)
This function is provided for derived classes to set the internal (zero-based) row position to index. |
protected void |
setForwardOnly(boolean forward)
Sets forward only mode to forward. |
protected void |
setLastError(QSqlError e)
This function is provided for derived classes to set the last error to error. |
protected void |
setQuery(java.lang.String query)
Sets the current query for the result to query. |
protected void |
setSelect(boolean s)
This function is provided for derived classes to indicate whether or not the current statement is a SQL SELECT statement. |
protected abstract int |
size()
Returns the size of the SELECT result, or -1 if it cannot be determined or if the query is not a SELECT statement. |
Methods inherited from class com.trolltech.qt.QtJambiObject |
---|
dispose, disposed, equals, finalize, reassignNativeResources, tr, tr, tr |
Methods inherited from class com.trolltech.qt.QSignalEmitter |
---|
blockSignals, disconnect, disconnect, signalsBlocked, signalSender, thread |
Methods inherited from class com.trolltech.qt.internal.QSignalEmitterInternal |
---|
__qt_signalInitialization |
Methods inherited from class java.lang.Object |
---|
clone, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface com.trolltech.qt.QtJambiInterface |
---|
disableGarbageCollection, nativeId, nativePointer, reenableGarbageCollection, setJavaOwnership |
Constructor Detail |
---|
protected QSqlResult(QSqlDriver db)
isActive()
, and driver()
.
Method Detail |
---|
protected final void addBindValue(java.lang.Object val, QSql.ParamTypeFlag[] type)
protected final void addBindValue(java.lang.Object val, QSql.ParamType type)
bindValue()
.
protected final int at()
QSql::BeforeFirstRow
or QSql::AfterLastRow
. setAt()
, and isValid()
.
protected final QSql.ParamType bindValueType(java.lang.String placeholder)
protected final QSql.ParamType bindValueType(int pos)
boundValue()
.
protected final QSqlResult.BindingSyntax bindingSyntax()
protected final java.lang.Object boundValue(java.lang.String placeholder)
bindValueType()
.
protected final java.lang.Object boundValue(int pos)
bindValue()
, and boundValues()
.
protected final int boundValueCount()
boundValues()
.
protected final java.lang.String boundValueName(int pos)
boundValue()
.
protected final java.util.List boundValues()
boundValueCount()
.
protected final void clear()
protected final QSqlDriver driver()
protected final java.lang.String executedQuery()
exec()
, and setQuery()
.
protected final boolean hasOutValues()
QSql::InOut
; otherwise returns false. bindValueType()
.
protected final boolean isActive()
protected final boolean isForwardOnly()
setForwardOnly()
.
protected final boolean isSelect()
setSelect()
.
protected final boolean isValid()
at()
.
protected final QSqlError lastError()
setLastError()
.
protected final java.lang.String lastQuery()
setQuery()
.
protected final void bindValue(java.lang.String placeholder, java.lang.Object val, QSql.ParamTypeFlag[] type)
protected void bindValue(java.lang.String placeholder, java.lang.Object val, QSql.ParamType type)
Note that binding an undefined placeholder will result in undefined behavior.
protected final void bindValue(int pos, java.lang.Object val, QSql.ParamTypeFlag[] type)
protected void bindValue(int pos, java.lang.Object val, QSql.ParamType type)
addBindValue()
.
protected abstract java.lang.Object data(int i)
QVariant
. This function is only called if the result is in an active state and is positioned on a valid record and index is non-negative. Derived classes must reimplement this function and return the value of field index, or QVariant() if it cannot be determined.
protected boolean exec()
prepare()
.
protected abstract boolean fetch(int i)
This function is only called if the result is in an active state. Derived classes must reimplement this function and position the result to the row index, and call setAt()
with an appropriate value. Return true to indicate success, or false to signify failure.
isActive()
, fetchFirst()
, fetchLast()
, fetchNext()
, and fetchPrevious()
.
protected abstract boolean fetchFirst()
This function is only called if the result is in an active state. Derived classes must reimplement this function and position the result to the first record, and call setAt()
with an appropriate value. Return true to indicate success, or false to signify failure.
fetch()
, and fetchLast()
.
protected abstract boolean fetchLast()
This function is only called if the result is in an active state. Derived classes must reimplement this function and position the result to the last record, and call setAt()
with an appropriate value. Return true to indicate success, or false to signify failure.
fetch()
, and fetchFirst()
.
protected boolean fetchNext()
This function is only called if the result is in an active state. The default implementation calls fetch()
with the next index. Derived classes can reimplement this function and position the result to the next record in some other way, and call setAt()
with an appropriate value. Return true to indicate success, or false to signify failure.
fetch()
, and fetchPrevious()
.
protected boolean fetchPrevious()
This function is only called if the result is in an active state. The default implementation calls fetch()
with the previous index. Derived classes can reimplement this function and position the result to the next record in some other way, and call setAt()
with an appropriate value. Return true to indicate success, or false to signify failure.
public java.lang.Object handle()
QVariant
or an invalid QVariant
if there is no handle. Warning: Use this with uttermost care and only if you know what you're doing.
Warning: The handle returned here can become a stale pointer if the result is modified (for example, if you clear it).
Warning: The handle can be NULL if the result was not executed yet.
The handle returned here is database-dependent, you should query the type name of the variant before accessing it.
This example retrieves the handle for a sqlite result:
QSqlQuery query = ...; QVariant v = query.result().handle(); if (v.isValid() && qstrcmp(v.typeName(), "sqlite3_stmt*")) { // v.data() returns a pointer to the handle sqlite3_stmt andle = tatic_cast<sqlite3_stmt **>(v.data()); if (handle != 0) { // check that it is not NULL ... } }This snippet returns the handle for PostgreSQL or MySQL:
if (v.typeName() == "PGresult*") { PGresult andle = tatic_cast<PGresult **>(v.data()); if (handle != 0) ... } if (v.typeName() == "MYSQL_STMT*") { MYSQL_STMT andle = tatic_cast<MYSQL_STMT **>(v.data()); if (handle != 0) ... }
QSqlDriver::handle()
.
protected abstract boolean isNull(int i)
protected java.lang.Object lastInsertId()
QVariant
will be returned if the query did not insert any value or if the database does not report the id back. If more than one row was touched by the insert, the behavior is undefined. Note that for Oracle databases the row's ROWID will be returned, while for MySQL databases the row's auto-increment field will be returned.
QSqlDriver::hasFeature()
.
protected abstract int numRowsAffected()
size()
.
protected boolean prepare(java.lang.String query)
exec()
.
protected QSqlRecord record()
QSqlRecord
. The default implementation always returns an empty QSqlRecord
.
isActive()
.
protected abstract boolean reset(java.lang.String sqlquery)
Derived classes must reimplement this function and apply the query to the database. This function is only called after the result is set to an inactive state and is positioned before the first record of the new result. Derived classes should return true if the query was successful and ready to be used, or false otherwise.
setQuery()
.
protected boolean savePrepare(java.lang.String sqlquery)
prepare()
.
protected void setActive(boolean a)
isActive()
.
protected void setAt(int at)
at()
.
protected void setForwardOnly(boolean forward)
fetchNext()
is allowed for navigating the results. Forward only mode needs much less memory since results do not have to be cached. By default, this feature is disabled. isForwardOnly()
, and fetchNext()
.
protected void setLastError(QSqlError e)
lastError()
.
protected void setQuery(java.lang.String query)
reset()
to execute the query on the database. reset()
, and lastQuery()
.
protected void setSelect(boolean s)
isSelect()
.
protected abstract int size()
numRowsAffected()
.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |