def sqlSelect(self, f, s, w, tL=None, size=0, connName="default"): if w == None or w == "": return False q = FLSqlQuery(None, connName) if tL: q.setTablesList(tL) else: q.setTablesList(f) q.setSelect(s) q.setFrom(f) q.setWhere(w) #q.setForwardOnly(True) if not q.exec(): return False if q.next(): valor = q.value(0) if isinstance(valor, datetime.date): valor = str(valor) return valor if size: return False
def readDBSettingEntry(self, key): q = FLSqlQuery() q.setSelect("valor") q.setFrom("flsettings") q.setWhere("flkey = '%s'" % key) q.setTablesList("flsettings") if q.exec() and q.first(): return q.value(0) return None
def nextSerialVal(self, table, field): q = FLSqlQuery() q.setSelect(u"nextval('" + table + "_" + field + "_seq')") q.setFrom("") q.setWhere("") if not q.exec(): print("not exec sequence") return None if q.first(): return q.value(0) else: return None
def sqlSelect(self, f, s, w, tL=None, size=0, connName="default"): q = FLSqlQuery(None, connName) if tL: q.setTablesList(tL) else: q.setTablesList(f) q.setSelect(s) q.setFrom(f) q.setWhere(w) q.setForwardOnly(True) if not q.exec(): return False if q.next(): return q.value(0) if size: return False
def nextCounter(self, *args, **kwargs): if len(args) == 2: name = args[0] cursor_ = args[1] if not cursor_: return None tMD = cursor_.metadata() if not tMD: return None field = tMD.field(name) if not field: return None type_ = field.type() if not type_ == "string" and not not type_ == "double": return None _len = field.length() cadena = None q = FLSqlQuery(None, cursor_.db().connectionName()) q.setForwardOnly(True) q.setTablesList(tMD.name()) q.setSelect(name) q.setFrom(tMD.name()) q.setWhere("LENGTH(%s)=%d" % (name, _len)) q.setOrderBy(name + " DESC") if not q.exec(): return None maxRange = 10**_len numero = maxRange while numero >= maxRange: if not q.next(): numero = 1 break numero = float(q.value(0)) numero = numero + 1 if type_ == "string": cadena = str(numero) if len(cadena) < _len: relleno = None relleno = cadena.rjust(_len - len(cadena), '0') cadena = str + cadena return cadena if type_ == "double": return numero return None else: serie = args[0] name = args[1] cursor_ = args[2] if not cursor_: return None tMD = cursor_.metadata() if not tMD: return None field = tMD.field(name) if not field: return None type_ = field.type() if not type_ == "string" and not type_ == "double": return None _len = field.length() - len(serie) cadena = None where = "length(%s)=%d AND substring(%s FROM 1 for %d) = '%s'" % ( name, field.length(), name, len(serie), serie) select = "substring(%s FROM %d) as %s" % (name, len(serie) + 1, name) q = FLSqlQuery(None, cursor_.db().connectionName()) q.setForwardOnly(True) q.setTablesList(tMD.name()) q.setSelect(select) q.setFrom(tMD.name()) q.setWhere(where) q.setOrderBy(name + " DESC") if not q.exec(): return None maxRange = 10**_len numero = maxRange while numero >= maxRange: if not q.next(): numero = 1 break numero = float(q.value(0)) numero = numero + 1 if type_ == "string" or type_ == "double": cadena = numero if len(cadena) < _len: relleno = cadena.rjust(_len - len(cadena), '0') cadena = relleno + cadena #res = serie + cadena return cadena return None
def nextCounter(self, *args, **kwargs): if len(args) == 2: name = args[0] cursor_ = args[1] if not cursor_: return None tMD = cursor_.metadata() if not tMD: return None field = tMD.field(name) if not field: return None type_ = field.type() if not type_ == "string" and not not type_ == "double": return None _len = field.length() cadena = None q = FLSqlQuery(None, cursor_.db().connectionName()) q.setForwardOnly(True) q.setTablesList(tMD.name()) q.setSelect(name) q.setFrom(tMD.name()) q.setWhere("LENGTH(%s)=%d" % (name, _len)) q.setOrderBy(name + " DESC") if not q.exec(): return None maxRange = 10 ** _len numero = maxRange while numero >= maxRange: if not q.next(): numero = 1 break numero = float(q.value(0)) numero = numero + 1 if type_ == "string": cadena = str(numero) if len(cadena) < _len: relleno = None relleno = cadena.rjust(_len - len(cadena), '0') cadena = str + cadena return cadena if type_ == "double": return numero return None else: serie = args[0] name = args[1] cursor_ = args[2] if not cursor_: return None tMD = cursor_.metadata() if not tMD: return None field = tMD.field(name) if not field: return None type_ = field.type() if not type_ == "string" and not type_ == "double": return None _len = field.length() - len(serie) cadena = None where = "length(%s)=%d AND substring(%s FROM 1 for %d) = '%s'" % (name, field.length(), name, len(serie), serie) select = "substring(%s FROM %d) as %s" % (name, len(serie) + 1, name) q = FLSqlQuery(None, cursor_.db().connectionName()) q.setForwardOnly(True) q.setTablesList(tMD.name()) q.setSelect(select) q.setFrom(tMD.name()) q.setWhere(where) q.setOrderBy(name + " DESC") if not q.exec(): return None maxRange = 10 ** _len numero = maxRange while numero >= maxRange: if not q.next(): numero = 1 break numero = float(q.value(0)) numero = numero + 1 if type_ == "string" or type_ == "double": cadena = numero if len(cadena) < _len: relleno = cadena.rjust(_len - len(cadena), '0') cadena = relleno + cadena #res = serie + cadena return cadena return None