def makeValueRelationDict(self, valueDict): ret = dict() codes = valueDict['FilterExpression'].replace('code in (', '').replace(')','').split(',') keyColumn = valueDict['Key'] valueColumn = valueDict['Value'] table = valueDict['Layer'][:-17]#removing the date-time characters uri = QgsDataSourceURI(self.currLayer.dataProvider().dataSourceUri()) if uri.host() == '': db = QSqlDatabase('QSQLITE') db.setDatabaseName(uri.database()) else: db = QSqlDatabase('QPSQL') db.setHostName(uri.host()) db.setPort(int(uri.port())) db.setDatabaseName(uri.database()) db.setUserName(uri.username()) db.setPassword(uri.password()) if not db.open(): db.close() return ret in_clause = ','.join(map(str, codes)) query = QSqlQuery('select code, code_name from dominios.%s where code in (%s)' % (table, in_clause), db) while query.next(): code = str(query.value(0)) code_name = query.value(1) ret[code_name] = code db.close() return ret
def makeValueRelationDict(self, valueDict): """ Gets the value relation dictionary. This is necessary for multi valued attributes. """ ret = dict() codes = valueDict['FilterExpression'].replace('code in (', '').replace( ')', '').split(',') in_clause = ','.join(map(str, codes)) keyColumn = valueDict['Key'] valueColumn = valueDict['Value'] table = valueDict['Layer'][:-17] #removing the date-time characters uri = QgsDataSourceURI(self.currLayer.dataProvider().dataSourceUri()) if uri.host() == '': db = QSqlDatabase('QSQLITE') db.setDatabaseName(uri.database()) sql = 'select code, code_name from dominios_%s where code in (%s)' % ( table, in_clause) else: db = QSqlDatabase('QPSQL') db.setHostName(uri.host()) db.setPort(int(uri.port())) db.setDatabaseName(uri.database()) db.setUserName(uri.username()) db.setPassword(uri.password()) sql = 'select code, code_name from dominios.%s where code in (%s)' % ( table, in_clause) if not db.open(): db.close() return ret query = QSqlQuery(sql, db) if not query.isActive(): QMessageBox.critical( self.iface.mainWindow(), self.tr("Error!"), self.tr("Problem obtaining domain values: ") + query.lastError().text()) return ret while query.next(): code = str(query.value(0)) code_name = query.value(1) ret[code_name] = code db.close() return ret
def __init__(self): ''' Constructor ''' super(SpatialiteDb, self).__init__() self.db = QSqlDatabase('QSQLITE') self.gen = SqlGeneratorFactory().createSqlGenerator(True)
def getEDGVDbsFromServer(self): #Can only be used in postgres database. try: self.checkAndOpenDb() except: return [] query = QSqlQuery(self.gen.getDatabasesFromServer(),self.db) dbList = [] while query.next(): dbList.append(query.value(0)) edvgDbList = [] for database in dbList: db = None db = QSqlDatabase("QPSQL") db.setDatabaseName(database) db.setHostName(self.db.hostName()) db.setPort(self.db.port()) db.setUserName(self.db.userName()) db.setPassword(self.db.password()) if not db.open(): QgsMessageLog.logMessage('DB :'+database+'| msg: '+db.lastError().databaseText(), "DSG Tools Plugin", QgsMessageLog.CRITICAL) query2 = QSqlQuery(db) if query2.exec_(self.gen.getEDGVVersion()): while query2.next(): version = query2.value(0) if version: edvgDbList.append((database,version)) else: QgsMessageLog.logMessage(self.tr('Problem accessing database: ') +database+'\n'+query2.lastError().text(), "DSG Tools Plugin", QgsMessageLog.CRITICAL) return edvgDbList
def dropDatabase(self,db): host = db.hostName() port = db.port() user = db.userName() password = db.password() database = 'postgres' pgDB = QSqlDatabase('QPSQL') pgDB.setHostName(host) pgDB.setPort(port) pgDB.setUserName(user) pgDB.setPassword(password) pgDB.setDatabaseName(database) if not pgDB.open(): return False sql = self.gen.dropDatabase(db.databaseName()) query = QSqlQuery(pgDB) return query.exec_(sql)
def __init__(self, netmanager, clipboard, parent=None): super(MainWin, self).__init__(parent) self.setWindowTitle("Eilat Browser " + netmanager.name) self.netmanager = netmanager self.clipboard = clipboard self.tab_widget = QTabWidget(self) self.tab_widget.tabBar().setMovable(True) self.setCentralWidget(self.tab_widget) self.tab_widget.setTabsClosable(True) database = QSqlDatabase("QPSQL") database.open("pguser", "pguser") query = QSqlQuery( "select concat(host, path) h, count(*) c from reply " + "where status between 200 and 399 " + "and is_bookmarkable(path) " + "and host not in (select host from filtro) " + "group by h " + "order by c desc", database) self.model = QSqlQueryModel() self.model.setQuery(query) self.tab_widget.tabCloseRequested.connect(self.del_tab) def new_tab_from_clipboard(): """ One-use callback for QShortcut. Reads the content of the PRIMARY clipboard and navigates to it on a new tab. """ url = unicode(self.clipboard.text(QClipboard.Selection)).strip() self.add_tab(url) set_shortcuts([("Ctrl+T", self, self.add_tab), ("Y", self, new_tab_from_clipboard), ("Ctrl+W", self, self.del_tab), ("N", self, partial(self.inc_tab, -1)), ("Ctrl+PgUp", self, partial(self.inc_tab, -1)), ("M", self, self.inc_tab), ("Ctrl+PgDown", self, self.inc_tab), ("Ctrl+Q", self, QApplication.closeAllWindows)])
def getDatabase(self, database = 'postgres'): (host, port, user, password) = self.getServerConfiguration(self.serversCombo.currentText()) db = QSqlDatabase("QPSQL") db.setConnectOptions('connect_timeout=10') db.setDatabaseName(database) db.setHostName(host) db.setPort(int(port)) db.setUserName(user) if password == '': conInfo = 'host='+host+' port='+port+' dbname='+database self.setCredentials(db, conInfo, user) else: db.setPassword(password) if not db.open(): QgsMessageLog.logMessage(db.lastError().text(), "DSG Tools Plugin", QgsMessageLog.CRITICAL) return db
def dropDatabase(self, db): """ Drops the created database case a problem occurs during database creation db: QSqlDatabase to be dropped """ host = db.hostName() port = db.port() user = db.userName() password = db.password() database = 'postgres' pgDB = QSqlDatabase('QPSQL') pgDB.setHostName(host) pgDB.setPort(port) pgDB.setUserName(user) pgDB.setPassword(password) pgDB.setDatabaseName(database) if not pgDB.open(): return False sql = self.gen.dropDatabase(db.databaseName()) query = QSqlQuery(pgDB) return query.exec_(sql)
def __init__(self): super(PostgisDb,self).__init__() self.db = QSqlDatabase('QPSQL') self.gen = SqlGeneratorFactory().createSqlGenerator(False)
from PyQt4.QtSql import QSqlDatabase import os name = "Rai" report = open("d:/relatorio_{0}.txt".format(name), "w") db = QSqlDatabase('QOCISPATIAL') if db.isValid(): # string db.setHostName('s324-prodabel.pbh') # string db.setDatabaseName('geodsv1') # string db.setUserName('tinorberto') # string db.setPassword('tiago123') # integer e.g. 5432 db.setPort(1521) if db.open(): for file in os.listdir( "D:\CROQUIS_FAZENDA\croqui smf\pacote_croqui_interno_SMAAR\{0}" .format(name)): if file.endswith(".dwg"): file = file.replace('.dwg', '') print """select TRIBUTARIO.CHECK_IMOVEL_IPTU('{0}') from dual""".format( file) query = db.exec_( """select TRIBUTARIO.CHECK_IMOVEL_IPTU('{0}') from dual""". format(file)) # iterate over the rows while query.next(): print "-------" record = query.record()