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