Fields Summary |
---|
private static final String | TAG |
protected SQLiteDatabase | mDatabaseThe database this program is compiled against. |
protected int | nHandleNative linkage, do not modify. This comes from the database and should not be modified
in here or in the native code. |
protected int | nStatementNative linkage, do not modify. When non-0 this holds a reference to a valid
sqlite3_statement object. It is only updated by the native code, but may be
checked in this class when the database lock is held to determine if there
is a valid native-side program or not. |
private StackTraceElement[] | mStackTraceElementsUsed to find out where a cursor was allocated in case it never got
released. |
Methods Summary |
---|
public void | bindBlob(int index, byte[] value)Bind a byte array value to this statement. The value remains bound until
{@link #clearBindings} is called.
if (value == null) {
throw new IllegalArgumentException("the bind value at index " + index + " is null");
}
acquireReference();
try {
native_bind_blob(index, value);
} finally {
releaseReference();
}
|
public void | bindDouble(int index, double value)Bind a double value to this statement. The value remains bound until
{@link #clearBindings} is called.
acquireReference();
try {
native_bind_double(index, value);
} finally {
releaseReference();
}
|
public void | bindLong(int index, long value)Bind a long value to this statement. The value remains bound until
{@link #clearBindings} is called.
acquireReference();
try {
native_bind_long(index, value);
} finally {
releaseReference();
}
|
public void | bindNull(int index)Bind a NULL value to this statement. The value remains bound until
{@link #clearBindings} is called.
acquireReference();
try {
native_bind_null(index);
} finally {
releaseReference();
}
|
public void | bindString(int index, java.lang.String value)Bind a String value to this statement. The value remains bound until
{@link #clearBindings} is called.
if (value == null) {
throw new IllegalArgumentException("the bind value at index " + index + " is null");
}
acquireReference();
try {
native_bind_string(index, value);
} finally {
releaseReference();
}
|
public void | clearBindings()Clears all existing bindings. Unset bindings are treated as NULL.
acquireReference();
try {
native_clear_bindings();
} finally {
releaseReference();
}
|
public void | close()Release this program's resources, making it invalid.
mDatabase.lock();
try {
releaseReference();
} finally {
mDatabase.unlock();
}
|
protected void | compile(java.lang.String sql, boolean forceCompilation)Compiles the given SQL into a SQLite byte code program using sqlite3_prepare_v2(). If
this method has been called previously without a call to close and forCompilation is set
to false the previous compilation will be used. Setting forceCompilation to true will
always re-compile the program and should be done if you pass differing SQL strings to this
method.
Note: this method acquires the database lock.
// Only compile if we don't have a valid statement already or the caller has
// explicitly requested a recompile.
if (nStatement == 0 || forceCompilation) {
mDatabase.lock();
try {
// Note that the native_compile() takes care of destroying any previously
// existing programs before it compiles.
acquireReference();
native_compile(sql);
} finally {
releaseReference();
mDatabase.unlock();
}
}
|
protected void | finalize()Make sure that the native resource is cleaned up.
if (nStatement != 0) {
if (SQLiteDebug.DEBUG_SQL_STATEMENTS) {
String message = "Finalizing " + this +
" that has not been closed";
Log.d(TAG, message + "\nThis cursor was created in:");
for (StackTraceElement ste : mStackTraceElements) {
Log.d(TAG, " " + ste);
}
}
// when in finalize() it is already removed from weakhashmap
// so it is safe to not removed itself from db
onAllReferencesReleasedFromContainer();
}
|
public final int | getUniqueId()Returns a unique identifier for this program.
return nStatement;
|
protected final native void | native_bind_blob(int index, byte[] value)
|
protected final native void | native_bind_double(int index, double value)
|
protected final native void | native_bind_long(int index, long value)
|
protected final native void | native_bind_null(int index)
|
protected final native void | native_bind_string(int index, java.lang.String value)
|
private final native void | native_clear_bindings()
|
protected final native void | native_compile(java.lang.String sql)Compiles SQL into a SQLite program.
The database lock must be held when calling this method.
|
protected final native void | native_finalize()
|
protected void | onAllReferencesReleased()
// Note that native_finalize() checks to make sure that nStatement is
// non-null before destroying it.
native_finalize();
mDatabase.releaseReference();
mDatabase.removeSQLiteClosable(this);
|
protected void | onAllReferencesReleasedFromContainer()
// Note that native_finalize() checks to make sure that nStatement is
// non-null before destroying it.
native_finalize();
mDatabase.releaseReference();
|