def try_connection(self): from pyarchinit_conn_strings import * conn = Connection() conn_str = conn.conn_str() from pyarchinit_db_manager import * self.DB_MANAGER = Pyarchinit_db_management( conn_str ) #sqlite:///\Users\Windows\pyarchinit_DB_folder\pyarchinit_db.sqlite test = self.DB_MANAGER.connection() test = str(test) if test == "": QMessageBox.warning(self, "Messaggio", "Connessione avvenuta con successo", QMessageBox.Ok) elif test.find("create_engine") != -1: QMessageBox.warning( self, "Alert", "Verifica i parametri di connessione. <br> Se sono corretti RIAVVIA QGIS", QMessageBox.Ok) else: QMessageBox.warning( self, "Alert", "Errore di connessione: <br>" + str(test) + "<br> Cambia i parametri e riprova a connetterti. Se cambi server (Postgres o Sqlite) ricordati di cliccare su connetti e RIAVVIARE Qgis", QMessageBox.Ok)
def on_pushButton_connect_pressed(self): from pyarchinit_conn_strings import * conn = Connection() conn_str = conn.conn_str() test_conn = conn_str.find('sqlite') if test_conn == 0: self.DB_SERVER = "sqlite" try: self.DB_MANAGER = Pyarchinit_db_management(conn_str) self.DB_MANAGER.connection() self.charge_records() #charge records from DB #check if DB is empty if bool(self.DATA_LIST) == True: self.REC_TOT, self.REC_CORR = len(self.DATA_LIST), 0 self.DATA_LIST_REC_TEMP = self.DATA_LIST_REC_CORR = self.DATA_LIST[0] self.BROWSE_STATUS = 'b' self.label_status.setText(self.STATUS_ITEMS[self.BROWSE_STATUS]) self.label_sort.setText(self.SORTED_ITEMS["n"]) self.set_rec_counter(len(self.DATA_LIST), self.REC_CORR+1) self.charge_list() self.fill_fields() else: QMessageBox.warning(self, "BENVENUTO", "Benvenuto in pyArchInit" + self.NOME_SCHEDA + ". Il database e' vuoto. Premi 'Ok' e buon lavoro!", QMessageBox.Ok) self.charge_list() self.BROWSE_STATUS = 'x' self.on_pushButton_new_rec_pressed() except Exception as e: e = str(e) if e.find("no such table"): QMessageBox.warning(self, "Alert", "La connessione e' fallita <br><br> Tabella non presente. E' NECESSARIO RIAVVIARE QGIS" + str(e) , QMessageBox.Ok) else: QMessageBox.warning(self, "Alert", "Attenzione rilevato bug! Segnalarlo allo sviluppatore<br> Errore: <br>" + str(e) , QMessageBox.Ok)
def DB_connect(self): from pyarchinit_conn_strings import * conn = Connection() conn_str = conn.conn_str() try: self.DB_MANAGER = Pyarchinit_db_management(conn_str) self.DB_MANAGER.connection() except Exception as e: e = str(e) QMessageBox.warning(self, "Alert", "Attenzione rilevato bug! Segnalarlo allo sviluppatore <br> Errore: <br>" + str(e) , QMessageBox.Ok)
def load_connection(self): QMessageBox.warning(self, "Alert", "Sistema in corso di abbandono. A breve verra' eliminato." , QMessageBox.Ok) from pyarchinit_conn_strings import * conn = Connection() conn_str = conn.conn_str() try: self.DB_MANAGER = Pyarchinit_db_management(conn_str) self.DB_MANAGER.connection() except: pass
def on_pushButton_crea_db_sqlite_pressed(self): try: conn = Connection() conn_str = conn.conn_str() self.DB_MANAGER = Pyarchinit_db_management(conn_str) self.DB_MANAGER.connection() self.DB_MANAGER.execute_sql_create_spatialite_db() except: QMessageBox.warning( self, "Alert", "L'installazione e' fallita. Riavvia Qgis. Se l'errore persiste verifica che i layer non siano gia' installati oppure sia stia usando un db Postgres", QMessageBox.Ok) else: QMessageBox.warning(self, "Alert", "L'installazione ha avuto successo!", QMessageBox.Ok)
def connect(self): from pyarchinit_conn_strings import * conn = Connection() conn_str = conn.conn_str() try: self.DB_MANAGER = Pyarchinit_db_management(conn_str) self.DB_MANAGER.connection() except Exception as e: e = str(e) if e.find("no such table"): QMessageBox.warning( self, "Alert", "La connessione e' fallita <br><br> Tabella non presente. E' NECESSARIO RIAVVIARE QGIS", QMessageBox.Ok) else: QMessageBox.warning( self, "Alert", "Attenzione rilevato bug! Segnalarlo allo sviluppatore<br> Errore: <br>" + str(e), QMessageBox.Ok)
def connect(self): QMessageBox.warning( self, "Alert", "Sistema sperimentale. Esporta le schede PDF in /vostro_utente/pyarchinit_DB_folder. Sostituisce i documenti gia' presenti. Se volete conservarli fatene una copia o rinominateli.", QMessageBox.Ok) from pyarchinit_conn_strings import * conn = Connection() conn_str = conn.conn_str() try: self.DB_MANAGER = Pyarchinit_db_management(conn_str) self.DB_MANAGER.connection() except Exception as e: e = str(e) if e.find("no such table"): QMessageBox.warning( self, "Alert", "La connessione e' fallita <br><br> %s. E' NECESSARIO RIAVVIARE QGIS" % (str(e)), QMessageBox.Ok) else: QMessageBox.warning( self, "Alert", "Attenzione rilevato bug! Segnalarlo allo sviluppatore<br> Errore: <br>" + str(e), QMessageBox.Ok)
def create_dict_field_value(f): fields = f #riceve la lista dei campi diz_field_value = {} for field in fields: #per ogni campi esegue una query per ricavare il valore field_copy = field[1:] print("query su", field_copy) value = "qui il valore" #query al db per ricavare il singolo valore, deve cerca in base a nome_tabella, id record e nome campo ## """VERIFICARE COME ARRIVA IL DATO DAL DB""" diz_field_value[field] = value return diz_field_value #http://www.anthropology-resources.net/Texts/files.html dynamic_replace("il mio /sw preferito: /nome!", ["/gig", "/ugo"],["plugin", "pyArchInit"]) cell_schema = [[ 'Nr US: /us', 'numero di us: /us', '03', 'Area: /area', '05', '06', '07', '09' ], [ 'la fava: /us', 'numero di us: /us', '03', 'Area: /area', '05', '06', '07', '09' ]] conn = Connection() conn_str = conn.conn_str() db = Pyarchinit_db_management(conn_str) print(db.query(ast.literal_eval('SITE'))) #print convert_cell_schema(cell_schema, ['/us', '/area'])