def close(self): if self.closed and self._dbapi_connected_flag: raise Error("connection already closed", source='CLIENT', creator=self) self._dbapi_connected_flag = True super().close()
def execute(self, statement, parameters = ()): if self.__portals is None: raise Error("cursor is closed", source = 'CLIENT', creator = self.database) sql, pxf, nparams = self._convert_query(statement) if nparams != -1 and len(parameters) != nparams: raise TypeError( "statement require %d parameters, given %d" %( nparams, len(parameters) ) ) ps = self.database.prepare(sql) c = ps.chunks(*pxf(parameters)) if ps._output is not None and len(ps._output) > 0: # name, relationId, columnNumber, typeId, typlen, typmod, format self.rowcount = -1 self.description = tuple([ (self.database.typio.decode(x[0]), dbapi_type(x[3]), None, None, None, None, None) for x in ps._output ]) self.__portals.insert(0, Portal(c)) else: self.rowcount = c.count() if self.rowcount is None: self.rowcount = -1 self.description = None # execute bumps any current portal if self.__portals: del self._portal return self
def close(self): if self.__portals is None: raise Error("cursor is closed", source='CLIENT', creator=self.database) self.description = None self.__portals = None
def close(self): if self.closed: raise Error( "connection already closed", source = 'CLIENT', creator = self ) super().close()
def fget(self): if self.__portals is None: raise Error("access on closed cursor") try: p = self.__portals[0] except IndexError: raise InterfaceError("no portal on stack") return p
def fdel(self): if self.__portals is None: raise Error("cursor is closed", source = 'CLIENT', creator = self.database ) try: del self.__portals[0] except IndexError: raise InterfaceError("no portal on stack")
def callproc(self, proname, args): if self.__portals is None: raise Error("cursor is closed", source = 'CLIENT', creator = self.database) p = self.database.prepare("SELECT %s(%s)" %( proname, ','.join([ '$' + str(x) for x in range(1, len(args) + 1) ]) )) self.__portals.insert(0, Portal(p.chunks(*args))) return args
def executemany(self, statement, parameters): if self.__portals is None: raise Error("cursor is closed", source = 'CLIENT', creator = self.database) sql, pxf, nparams = self._convert_query(statement) ps = self.database.prepare(sql) if ps._input is not None: ps.load_rows(map(pxf, parameters)) else: ps.load_rows(parameters) self.rowcount = -1 return self
def setoutputsize(self, sizes, columns = None): if self.__portals is None: raise Error("cursor is closed", source = 'CLIENT', creator = self.database)
def setinputsizes(self, sizes): if self.__portals is None: raise Error("cursor is closed", source = 'CLIENT', creator = self.database)
def close(self): if self.greentrunk.closed: raise Error("connection already closed") self.greentrunk.close()