Beispiel #1
0
def buildGIDsTable():
    logger.info("Building table ac_gids")
    logger.info("------------------------")
    connection = psycopg2.connect(host=config.databaseHost,
                                  database=config.databaseName,
                                  port=config.databasePort,
                                  user=config.databaseUserName,
                                  password=config.databasePassword)
    try:
        createTempTable(connection)

        cursor = getAddressRows(connection)
        try:
            if cursor == None: return

            logger.info("Inserting rows")
            logger.info("----------------------")
            insertCursor = connection.cursor()
            builder = HTTPShared.MimeBuilder("texttoonerow")
            row_count = 0
            gaugecount = 0

            for row in cursor:
                row_count += 1
                gaugecount += 1
                try:
                    street, houseNumber, locality, zipCode, orientationNumber, orientationNumberCharacter, localityPart, typ_so, nazev_mop, gid = row
                    houseNumber, recordNumber = HTTPShared.analyseRow(
                        typ_so, houseNumber)
                    districtNumber = HTTPShared.extractDictrictNumber(
                        nazev_mop)

                    rowLabel = compileaddress.compileAddress(
                        builder, street, houseNumber, recordNumber,
                        orientationNumber, orientationNumberCharacter, zipCode,
                        locality, localityPart, districtNumber)
                    insertSQL = "INSERT INTO ac_gids (gid, address) VALUES (%s, '%s')" % (
                        gid, rowLabel)
                    insertCursor.execute(insertSQL)
                    connection.commit()
                    if gaugecount >= 1000:
                        gaugecount = 0
                        logger.info(str(row_count) + " rows")

                except psycopg2.Error as e:
                    logPsycopg2Error(e)
                    logger.error(
                        str(row_count) + " " + insertSQL + " failed. ")
                    exitApp()
                    pass

            logger.info("Done - %d rows inserted." % row_count)

        finally:
            cursor.close()

        #renameTempTable(connection)

        logger.info("Building table ac_gids done.")
    finally:
        connection.close()
    pass
        houseNumber = ""
        recordNumber = numberToString(cislo_domovni)
    else:
        pass

    return houseNumber, recordNumber


def itemToStr(item):
    if item == None:
        return ""
    else:
        return str(item)


builder = HTTPShared.MimeBuilder("texttoonerow")

ID_VALUE = 'id'


def getAutocompleteOneItemResults(ruianType, nameToken, maxCount=10):
    if ruianType == "":
        ruianType == ID_VALUE

    nameToken = nameToken.lower()

    joinSeparator = ", "
    if ruianType == ID_VALUE:
        searchSQL = "select gid from gids where cast(gid as text) ilike '" + nameToken + "%'"

    searchSQL += " limit " + str(maxCount)