def valor_mem_para_valor_SQL(nome, val_mem, tipo_mem, tipo_SQL, nulo_ok): if val_mem == None: if nulo_ok: return None else: erro_prog("atributo '" + nome + "' não pode ser {None}") if type(val_mem) != tipo_mem: erro_prog("atributo " + str(val_mem) + " com tipo incorreto") elif type(val_mem) is str: assert tipo_SQL == 'TEXT' val_SQL = val_mem elif type(val_mem) is int: assert tipo_SQL == 'INTEGER' val_SQL = val_mem elif type(val_mem) is float: assert tipo_SQL == 'FLOAT' val_SQL = val_mem elif type(val_mem) is bool: assert tipo_SQL == 'INTEGER' val_SQL = (1 if val_mem else 0) elif type(val_mem) is list or type(val_mem) is tuple or type( val_mem) is dict: erro_prog("valor " + str(val_mem) + " não pode ser convertido") else: # Supõe que é objeto. Obtem o id: if tipo_SQL != 'TEXT': erro_prog("tipo SQL do atributo '" + nome + "' deveria ser 'TEXT' mas é '" + tipo_SQL + "'") val_SQL = objeto.obtem_identificador(val_mem) return val_SQL
def obtem_identificador(cpr): global cache, nome_tb, letra_tb, colunas, diags assert cpr != None and type(cpr) is compra.Objeto_Compra return objeto.obtem_identificador(cpr)
def obtem_identificador(usr): global cache, nome_tb, letra_tb, colunas, diags assert usr != None return objeto.obtem_identificador(usr)
def obtem_identificador(pol): global cache, nome_tb, letra_tb, colunas, diags assert pol != None and type(pol) is poltrona.Objeto_Poltrona return objeto.obtem_identificador(pol)
def obtem_identificador(ses): global cache, nome_tb, letra_tb, colunas, diags assert (ses != None) and type(ses) is sessao.Objeto_Sessao return objeto.obtem_identificador(ses)
def obtem_identificador(trc): global cache, nome_tb, letra_tb, colunas, diags assert trc != None assert type(trc) is trecho.Objeto_Trecho return objeto.obtem_identificador(trc)