Example #1
0
    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
Example #2
0
    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
Example #3
0
 def __init__(self):
     '''
     Constructor
     '''
     super(SpatialiteDb, self).__init__()
     self.db = QSqlDatabase('QSQLITE')
     self.gen = SqlGeneratorFactory().createSqlGenerator(True)
Example #4
0
    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
Example #5
0
 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)
Example #6
0
    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)])
Example #7
0
    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
Example #8
0
 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)
Example #9
0
 def __init__(self):
     super(PostgisDb,self).__init__()
     self.db = QSqlDatabase('QPSQL')
     self.gen = SqlGeneratorFactory().createSqlGenerator(False)
Example #10
0
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()