Dizionario dei dati

E” possibile ottenere informazioni sul dizionario dei dati del server Konga attualmente connesso ad una istanza di classe Client; la classe DataDictionary contiene una serie di metodi utili allo scopo.

Tipi di campo

kongalib.data_dictionary.TYPE_TINYINT = 1

Tipo di campo SQL TINYINT; i valori ottenuti dalla select_data() saranno di tipo int.

kongalib.data_dictionary.TYPE_SMALLINT = 2

Tipo di campo SQL SMALLINT; i valori ottenuti dalla select_data() saranno di tipo int.

kongalib.data_dictionary.TYPE_INT = 3

Tipo di campo SQL INT; i valori ottenuti dalla select_data() saranno di tipo int.

kongalib.data_dictionary.TYPE_BIGINT = 4

Tipo di campo SQL BIGINT; i valori ottenuti dalla select_data() saranno di tipo int.

kongalib.data_dictionary.TYPE_FLOAT = 5

Tipo di campo SQL FLOAT; i valori ottenuti dalla select_data() saranno di tipo float.

kongalib.data_dictionary.TYPE_DOUBLE = 6

Tipo di campo SQL DOUBLE; i valori ottenuti dalla select_data() saranno di tipo float.

kongalib.data_dictionary.TYPE_DECIMAL = 7

Tipo di campo SQL DECIMAL; i valori ottenuti dalla select_data() saranno di tipo kongalib.Decimal.

Avvertimento

Konga Server traduce automaticamente questo tipo di dato in BIGINT sul database SQL, e salva i valori decimali come se fossero interi moltiplicati per 1000000. Questo consente una precisione fino a 6 cifre decimali, e permette a Konga Server di operare anche con driver SQL che non supportano nativamente il tipo dato DECIMAL (come SQLite). La traduzione è completamente trasparente per kongalib, in quanto i metodi della classe kongalib.Client ricevono e restituiscono oggetti di clase kongalib.Decimal per gestire i decimali.

kongalib.data_dictionary.TYPE_DATE = 8

Tipo di campo SQL DATE; i valori ottenuti dalla select_data() saranno di tipo datetime.date.

kongalib.data_dictionary.TYPE_TIME = 9

Tipo di campo SQL TIME; i valori ottenuti dalla select_data() saranno di tipo datetime.time.

kongalib.data_dictionary.TYPE_TIMESTAMP = 10

Tipo di campo SQL TIMESTAMP; i valori ottenuti dalla select_data() saranno di tipo datetime.datetime.

kongalib.data_dictionary.TYPE_YEAR = 11

Tipo di campo SQL YEAR; i valori ottenuti dalla select_data() saranno di tipo int.

kongalib.data_dictionary.TYPE_CHAR = 12

Tipo di campo SQL CHAR; i valori ottenuti dalla select_data() saranno di tipo unicode.

kongalib.data_dictionary.TYPE_VARCHAR = 13

Tipo di campo SQL VARCHAR; i valori ottenuti dalla select_data() saranno di tipo unicode.

kongalib.data_dictionary.TYPE_TINYTEXT = 14

Tipo di campo SQL TINYTEXT; i valori ottenuti dalla select_data() saranno di tipo unicode.

kongalib.data_dictionary.TYPE_TEXT = 15

Tipo di campo SQL TEXT; i valori ottenuti dalla select_data() saranno di tipo unicode.

kongalib.data_dictionary.TYPE_LONGTEXT = 16

Tipo di campo SQL LONGTEXT; i valori ottenuti dalla select_data() saranno di tipo unicode.

kongalib.data_dictionary.TYPE_TINYBLOB = 17

Tipo di campo SQL TINYBLOB; i valori ottenuti dalla select_data() saranno di tipo bytes.

kongalib.data_dictionary.TYPE_BLOB = 18

Tipo di campo SQL BLOB; i valori ottenuti dalla select_data() saranno di tipo bytes.

kongalib.data_dictionary.TYPE_LONGBLOB = 19

Tipo di campo SQL LONGBLOB; i valori ottenuti dalla select_data() saranno di tipo bytes.

Flag di tabella

kongalib.data_dictionary.TABLE_HAS_IMAGES = 1

Flag informativo di tabella del data dictionary. Se specificato, i record della tabella possono avere immagini collegate.

kongalib.data_dictionary.TABLE_IS_INDEXED = 2

Flag informativo di tabelle del data dictionary. Se specificato, la tabella è indicizzata per la ricerca full-text.

Flag di campo

kongalib.data_dictionary.FIELD_UNSIGNED = 1

Flag informativo di campo del data dictionary. Se specificato, il tipo dato è senza segno.

kongalib.data_dictionary.FIELD_UNIQUE = 2

Flag informativo di campo del data dictionary. Se specificato, il campo SQL è UNIQUE.

kongalib.data_dictionary.FIELD_NOT_NULL = 4

Flag informativo di campo del data dictionary. Se specificato, il campo SQL non può essere NULL.

kongalib.data_dictionary.FIELD_PRIMARY_KEY = 8

Flag informativo di campo del data dictionary. Se specificato, il campo SQL è una PRIMARY KEY.

kongalib.data_dictionary.FIELD_FOREIGN_KEY = 16

Flag informativo di campo del data dictionary. Se specificato, il campo SQL è una FOREIGN KEY.

kongalib.data_dictionary.FIELD_AUTO_INCREMENT = 32

Flag informativo di campo del data dictionary. Se specificato, il campo SQL è un intero incrementato automaticamente.

kongalib.data_dictionary.FIELD_DEFAULT_NULL = 64

Flag informativo di campo del data dictionary. Se specificato, il campo SQL ha NULL come valore di default.

kongalib.data_dictionary.FIELD_DEFAULT_CURRENT_TS = 128

Flag informativo di campo del data dictionary. Se specificato, il campo SQL ha il timestamp corrente come valore di default.

kongalib.data_dictionary.FIELD_DEFAULT = 192

Flag informativo di campo del data dictionary. Se specificato, il campo SQL ha un valore di default.

kongalib.data_dictionary.FIELD_ON_UPDATE_CURRENT_TS = 256

Flag informativo di campo del data dictionary. Se specificato, il campo SQL viene aggiornato automaticamente al timestamp corrente su UPDATE.

kongalib.data_dictionary.FIELD_ON_DELETE_CASCADE = 512

Flag informativo di campo del data dictionary. Se specificato, su cancellazione di un record tutti i record ad esso collegati verranno cancellati a loro volta.

kongalib.data_dictionary.FIELD_ON_DELETE_SET_NULL = 1024

Flag informativo di campo del data dictionary. Se specificato, su cancellazione di un record tutti i record ad esso collegati avranno il collegamento impostato a NULL.

Classe DataDictionary

class kongalib.DataDictionary(data)

La classe DataDictionary contiene informazioni sul dizionario dei dati usato da un server Konga. Tramite questa classe è possibile ottenere la lista delle tabelle e dei campi, e informazioni specifiche su ogni campo.

class Choice(data)

Piccola classe che descrive le opzioni associate ad una scelta fissa del dizionario dei dati.

get_label(key)

Ottiene la descrizione della chiave key sotto forma di dict con le traduzioni corrispondenti a ciascuna lingua.

keys()

Ottiene la lista delle chiavi supportate da questa Choice.

get_choice(choicename)

Ottiene un oggetto Choice a partire dal nome della scelta choicename. L’oggetto può successivamente essere interrogato per ottenere informazioni su ogni opzione disponibile nella scelta.

get_field_info(fieldname)

Ottiene un dict con le informazioni sul campo fieldname. Il nome del campo deve essere nella forma <NomeTabella>.<NomeCampo>. Le chiavi significative sono desc (un dict con le traduzioni della descrizione del campo), type (tipo di campo; vedere le costanti tipi di campo), default (valore di default) e flags (flag informativi sul campo; vedere le costanti flag di campo).

get_fields_list(tablename)

Ottiene la lista dei campi per la tabella tablename. I nomi dei campi restituiti non includono il nome tabella.

get_table_info(tablename)

Ottiene un dict con le informazioni sulla tabella tablename. Le chiavi significative sono desc (un dict con le traduzioni della descrizione della tabella) e flags (flag informativi sulla tabella; vedere le costanti flag di tabella).

get_tables_list()

Ottiene la lista delle tabelle del dizionario dei dati.

get_version()

Ottiene la versione del dizionario dei dati come intero nella forma (major << 16) | (minor << 8) | revision.

resolve_field(fieldname)

Converte un nome campo dalla forma <NomeTabella>.[<CampoRef>.*]<NomeCampo> nella forma <NomeTabella>.<NomeCampo>, risolvendo eventuali campi ref_* intermedi.