def getSome(self, *args, **fieldData): """ """ order = fieldData.pop('order', None) limit = fieldData.pop('limit', None) offset = fieldData.pop('offset', None) conn = self.getDBI() sql, values = self.objL._processWhere(conn, args, fieldData) query = [self._baseSelect()] if sql: query.extend(['WHERE', sql]) if not every(None, (order, limit, offset)): query.append(conn.orderByString(order, limit, offset)) query = ' '.join(query) # we don't use the execute() method here, because we don't # want a dictionary, we need to know the order of columns in # the result set cursor = conn.cursor() if conn.verbose: debug("SQL: %s", query) debug("bind variables: %s", values) cursor.execute(query, values) ret = [] while 1: row = cursor.fetchone() if row is None: break ret.append(self._resolveObjects(row)) cursor.close() return tuple(ret)
def getSequence(self, name): cur=self.conn.cursor() sql="select nextval('%s')" % name if self.verbose: debug("SQL: %s", (sql,)) cur.execute(sql) res=cur.fetchone() if not res: raise PyDOError, "could not get value for sequence %s!" % name return res[0]
def execute(self, sql, values=(), qualified=False): """Executes the statement with the values and does conversion of the return result as necessary. result is list of dictionaries, or number of rows affected""" if self.verbose: debug("SQL: %s", sql) debug("bind variables: %s", values) c=self.conn.cursor() if values: c.execute(sql, values) else: c.execute(sql) if c.statusmessage=='SELECT': resultset=c.fetchall() else: resultset=None if not resultset: if c.statusmessage.startswith('INSERT') or c.statusmessage.startswith('UPDATE'): # rowcount doesn't work return int(c.statusmessage.split()[-1]) return -1 res=self._convertResultSet(c.description, resultset, qualified) c.close() return res