A database connection

Introduced properties

fun close

sqlite3 :: NativeSqlite3 :: close

Close this connection
fun exec(sql: CString): Sqlite3Code

sqlite3 :: NativeSqlite3 :: exec

Execute a SQL statement
fun is_valid: Bool

sqlite3 :: NativeSqlite3 :: is_valid

Has this DB been correctly opened?
init open(filename: CString): NativeSqlite3

sqlite3 :: NativeSqlite3 :: open

Open a connection to a database in UTF-8
fun prepare(sql: CString): NativeStatement

sqlite3 :: NativeSqlite3 :: prepare

Prepare a SQL statement

Redefined properties

redef type SELF: NativeSqlite3

sqlite3 $ NativeSqlite3 :: SELF

Type of this instance, automatically specialized in every class

All properties

fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
fun address_is_null: Bool

core :: Pointer :: address_is_null

Is the address behind this Object at NULL?
protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
fun class_name: String

core :: Object :: class_name

The class name of the object.
fun close

sqlite3 :: NativeSqlite3 :: close

Close this connection
fun exec(sql: CString): Sqlite3Code

sqlite3 :: NativeSqlite3 :: exec

Execute a SQL statement
fun free

core :: Pointer :: free

Free the memory pointed by this pointer
fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
fun hash: Int

core :: Object :: hash

The hash code of the object.
init init

core :: Object :: init

fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
fun is_valid: Bool

sqlite3 :: NativeSqlite3 :: is_valid

Has this DB been correctly opened?
init nul: Pointer

core :: Pointer :: nul

C NULL pointer
intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
init open(filename: CString): NativeSqlite3

sqlite3 :: NativeSqlite3 :: open

Open a connection to a database in UTF-8
fun output

core :: Object :: output

Display self on stdout (debug only).
intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
fun prepare(sql: CString): NativeStatement

sqlite3 :: NativeSqlite3 :: prepare

Prepare a SQL statement
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_s: String

core :: Object :: to_s

User readable representation of self.
package_diagram sqlite3::NativeSqlite3 NativeSqlite3 core::Pointer Pointer sqlite3::NativeSqlite3->core::Pointer core::Object Object core::Pointer->core::Object ...core::Object ... ...core::Object->core::Object

Ancestors

interface Object

core :: Object

The root of the class hierarchy.

Parents

extern class Pointer

core :: Pointer

Pointer classes are used to manipulate extern C structures.

Class definitions

sqlite3 $ NativeSqlite3
# A database connection
extern class NativeSqlite3 `{sqlite3 *`}

	# Open a connection to a database in UTF-8
	new open(filename: CString) `{
		sqlite3 *self = NULL;
		int err = sqlite3_open(filename, &self);
		nit_sqlite_open_error = err;
		return self;
	`}

	# Has this DB been correctly opened?
	#
	# To know if it has been closed or interrupted, you must check for errors with `error`.
	fun is_valid: Bool do return not address_is_null

	# Close this connection
	fun close `{
#if SQLITE_VERSION_NUMBER >= 3007014
		sqlite3_close_v2(self);
#else
		// A program using the older version should not rely on the garbage-collector
		// to close its connections. They must be closed manually after the associated
		// prepare statements have been finalized.
		sqlite3_close(self);
#endif
	`}

	# Execute a SQL statement
	fun exec(sql: CString): Sqlite3Code `{
		return sqlite3_exec(self, sql, NULL, NULL, NULL);
	`}

	# Prepare a SQL statement
	fun prepare(sql: CString): NativeStatement `{
		sqlite3_stmt *stmt;
		int res = sqlite3_prepare_v2(self, sql, -1, &stmt, 0);
		if (res == SQLITE_OK)
			return stmt;
		else
			return NULL;
	`}

	fun last_insert_rowid: Int `{
		return sqlite3_last_insert_rowid(self);
	`}

	fun error: Sqlite3Code `{
		return sqlite3_errcode(self);
	`}
end
lib/sqlite3/native_sqlite3.nit:137,1--187,3