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 tipoint
.
- kongalib.data_dictionary.TYPE_SMALLINT = 2
Tipo di campo SQL SMALLINT; i valori ottenuti dalla
select_data()
saranno di tipoint
.
- kongalib.data_dictionary.TYPE_INT = 3
Tipo di campo SQL INT; i valori ottenuti dalla
select_data()
saranno di tipoint
.
- kongalib.data_dictionary.TYPE_BIGINT = 4
Tipo di campo SQL BIGINT; i valori ottenuti dalla
select_data()
saranno di tipoint
.
- kongalib.data_dictionary.TYPE_FLOAT = 5
Tipo di campo SQL FLOAT; i valori ottenuti dalla
select_data()
saranno di tipofloat
.
- kongalib.data_dictionary.TYPE_DOUBLE = 6
Tipo di campo SQL DOUBLE; i valori ottenuti dalla
select_data()
saranno di tipofloat
.
- kongalib.data_dictionary.TYPE_DECIMAL = 7
Tipo di campo SQL DECIMAL; i valori ottenuti dalla
select_data()
saranno di tipokongalib.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 clasekongalib.Decimal
per gestire i decimali.
- kongalib.data_dictionary.TYPE_DATE = 8
Tipo di campo SQL DATE; i valori ottenuti dalla
select_data()
saranno di tipodatetime.date
.
- kongalib.data_dictionary.TYPE_TIME = 9
Tipo di campo SQL TIME; i valori ottenuti dalla
select_data()
saranno di tipodatetime.time
.
- kongalib.data_dictionary.TYPE_TIMESTAMP = 10
Tipo di campo SQL TIMESTAMP; i valori ottenuti dalla
select_data()
saranno di tipodatetime.datetime
.
- kongalib.data_dictionary.TYPE_YEAR = 11
Tipo di campo SQL YEAR; i valori ottenuti dalla
select_data()
saranno di tipoint
.
- kongalib.data_dictionary.TYPE_CHAR = 12
Tipo di campo SQL CHAR; i valori ottenuti dalla
select_data()
saranno di tipounicode
.
- kongalib.data_dictionary.TYPE_VARCHAR = 13
Tipo di campo SQL VARCHAR; i valori ottenuti dalla
select_data()
saranno di tipounicode
.
- kongalib.data_dictionary.TYPE_TINYTEXT = 14
Tipo di campo SQL TINYTEXT; i valori ottenuti dalla
select_data()
saranno di tipounicode
.
- kongalib.data_dictionary.TYPE_TEXT = 15
Tipo di campo SQL TEXT; i valori ottenuti dalla
select_data()
saranno di tipounicode
.
- kongalib.data_dictionary.TYPE_LONGTEXT = 16
Tipo di campo SQL LONGTEXT; i valori ottenuti dalla
select_data()
saranno di tipounicode
.
- kongalib.data_dictionary.TYPE_TINYBLOB = 17
Tipo di campo SQL TINYBLOB; i valori ottenuti dalla
select_data()
saranno di tipobytes
.
- kongalib.data_dictionary.TYPE_BLOB = 18
Tipo di campo SQL BLOB; i valori ottenuti dalla
select_data()
saranno di tipobytes
.
- kongalib.data_dictionary.TYPE_LONGBLOB = 19
Tipo di campo SQL LONGBLOB; i valori ottenuti dalla
select_data()
saranno di tipobytes
.
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 (undict
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 (undict
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.