Top

geodata.DB module

Provide SQLite database helper functions - insert, select, create tables and indices, etc

Classes

class DB

Sqlite3 helper functions

Ancestors (in MRO)

  • DB
  • builtins.object

Static methods

def __init__(

self, db_filename, show_message, exit_on_error)

Initialize and create a database connection to db_filename

Args:

db_filename: Database filename
show_message: If true, show messagebox to user on errors
exit_on_error: If true, sys exit on significant errors

Raises:

ValueError('Cannot open database')

def begin(

self)

Begin transaction

def commit(

self)

Commit transaction

def create_index(

self, create_index_sql)

Execute a SQL create index statement

Args:

create_index_sql: a full CREATE INDEX SQL statement

Returns: True if error. Self.err is set to Exception text. Shows Messagebox and/or exits on error if flags set.

Raises: Nothing. DB exceptions are suppressed.

def create_table(

self, create_table_sql)

Execute a SQL create table statement

Args:

create_table_sql: a full CREATE TABLE SQL statement

Returns: True if error. Self.err is set to Exception text. Shows Messagebox and/or exits on error if flags set.

Raises: Nothing. DB exceptions are suppressed.

def delete_table(

self, tbl)

Delete table

Args:

tbl:  table name
    # Returns: True if error.  Self.err is set to Exception text. Shows Messagebox and/or exits on error if flags set.

Raises: Nothing. DB exceptions are suppressed.

def execute(

self, sql, args)

Execute a SQL statement

Args:

sql: a full SQL statement

Returns: row. Self.err is set to Exception text. Shows Messagebox and/or exits on error if flags set.

Raises: Nothing. DB exceptions are suppressed.

def get_row_count(

self, table_name)

Get row count of specified table

Args:

table_name:

Returns: row count of specified table

def select(

self, select_str, where, from_tbl, args)

Execute a SELECT statement

Args:

select_str: string for SELECT xx   
where: Where clause   
from_tbl: Table name   
args: Args tuple for Select   
Note - ORDER clause and LIMIT clause are filled in with previously set values

Returns: Result list. Self.err is set to Exception text. Shows Messagebox and/or exits on error if flags set.

Raises: Nothing. DB exceptions are suppressed.

def set_optimize_pragma(

self)

Set 'PRAGMA optimize'

def set_pragma(

self, pragma)

Set a sqlite3 PRAGMA e.g. 'temp_store = memory'

Args:

pragma: pragma statement

Returns: None

def set_speed_pragmas(

self)

Set DB pragmas for speed. Use with caution as these can lead to corruption!
'PRAGMA temp_store = memory'
'PRAGMA journal_mode = off'
'PRAGMA locking_mode = exclusive'
'PRAGMA synchronous = 0

def table_exists(

self, table_name)

Returns whether table exists

Args:

table_name:

Returns:

True if table exists

Raises: Nothing. DB exceptions are suppressed

def test_database(

self, select_str, from_tbl, where, args)

Execute a test SELECT query on database

Args:

select_str: SELECT parameter
from_tbl: table name
where: where clause
args: argument tuple for where clause

Returns:

True if error

Raises: Nothing. DB exceptions are suppressed

Instance variables

var conn

var cur

var err

var exit_on_error

var limit_string

Get value of Limit parameter
Returns: value of LIMIT parameter

var logger

var order_string

Get value of ORDER BY
Returns: value of ORDER BY

var show_message

var total_lookups

var total_time