Witam,
Od kilku dni zmagam się z problemem zmiany przedrostka (zapewne chodzi o nazwę schematu bazy danych) oraz użytkownika podczas wczytywania źródła danych.
Wprowadziłem możliwość zmiany wczytywania nazwy schematu (województwa), dzięki czemu powiaty z danego województwa dostosowują się do akuratnie wybranego schematu bazy, ale załączony kod nie wczytuje zmiany schematu i użytkownika (choć go pobiera z pola tekstowego) do źródła danych (czerowna ramka w zrzucie- TERYT przy klasie BDOT10k potwierdza że nie jest prawidłowe).
Kod to PyQt do tworzenia wtyczek do QGIS.
Z Góry dziękuje za każdą pomoc.
Kod:
config = configparser.ConfigParser()
config.read(str(mainPath)+'/SystemBDOT10k.ini')
config.set('oracle', 'schema', base64.b64encode((self.dlg.lineEdit.text()).encode('utf-8')).decode('utf-8'))
config.set('oracle', 'password', base64.b64encode((self.dlg.lineEdit_2.text()).encode('utf-8')).decode('utf-8'))
config.set('oracle', 'database', self.dlg.lineEdit_3.text())
config.set('oracle', 'port', self.dlg.lineEdit_4.text())
config.set('UstawieniaOgolne', 'oznaczenieZmiany', self.dlg.lineEdit_6.text())
#aktualizacjab listy powiatów w zakładce "Operacje na danych"
connectionParam = config['oracle']
schema = (base64.b64decode((connectionParam['Schema']).encode('utf-8'))).decode('utf-8')
print (schema)
password = (base64.b64decode((connectionParam['Password']).encode('utf-8'))).decode('utf-8')
port = connectionParam['Port']
host = connectionParam['Host']
# Połączenie do bazy danych
database = connectionParam['Database']
oznaczenieZmiany = config['UstawieniaOgolne']['oznaczenieZmiany']
db = QSqlDatabase.addDatabase("QOCISPATIAL")
db.setDatabaseName(host + ':' + port + '/' + database)
db.setPassword(password)
db.setUserName(schema)
ok = db.open()