示例#1
0
    def execute_unnamed(self, statement, vals=(), oids=(), stream=None):
        context = Context(stream=stream)

        self.send_PARSE(NULL_BYTE, statement, oids)
        self._write(SYNC_MSG)
        self._flush()
        self.handle_messages(context)
        self.send_DESCRIBE_STATEMENT(NULL_BYTE)

        self._write(SYNC_MSG)

        try:
            self._flush()
        except AttributeError as e:
            if self._sock is None:
                raise InterfaceError("connection is closed")
            else:
                raise e
        params = make_params(self.py_types, vals)
        self.send_BIND(NULL_BYTE, params)
        self.handle_messages(context)
        self.send_EXECUTE()

        self._write(SYNC_MSG)
        self._flush()
        self.handle_messages(context)

        return context
示例#2
0
    def run(self, stream=None, **params):
        params = make_params(self.con.py_types, self.make_vals(params))

        self._context = self.con.execute_named(
            self.name_bin, params, self.cols, self.input_funcs
        )

        return self._context.rows
示例#3
0
文件: native.py 项目: esau91/Python
    def run(self, stream=None, **params):
        oids, params = make_params(self.con.py_types, self.make_vals(params))

        try:
            name_bin, columns, input_funcs = self.name_map[oids]
        except KeyError:
            name_bin, columns, input_funcs = self.name_map[
                oids] = self.con.prepare_statement(self.statement, oids)

        self._context = self.con.execute_named(name_bin, params, columns,
                                               input_funcs)

        return self._context.rows
示例#4
0
文件: core.py 项目: grepit/pg8000
    def execute_unnamed(self,
                        statement,
                        vals=(),
                        input_oids=None,
                        stream=None):
        context = Context(stream=stream)

        if len(vals) == 0 and stream is None:
            self.send_QUERY(statement)
            self._flush()
            self.handle_messages(context)
        else:
            param_oids, params = make_params(self.py_types, vals)
            if input_oids is None:
                oids = param_oids
            else:
                oids = [(p if i is None else i)
                        for p, i in zip(param_oids, input_oids)]

            self.send_PARSE(NULL_BYTE, statement, oids)
            self._write(SYNC_MSG)
            self._flush()
            self.handle_messages(context)
            self.send_DESCRIBE_STATEMENT(NULL_BYTE)

            self._write(SYNC_MSG)

            try:
                self._flush()
            except AttributeError as e:
                if self._sock is None:
                    raise InterfaceError("connection is closed")
                else:
                    raise e

            self.send_BIND(NULL_BYTE, params)
            self.handle_messages(context)
            self.send_EXECUTE()

            self._write(SYNC_MSG)
            self._flush()
            self.handle_messages(context)

        return context
示例#5
0
    def run(self, **vals):

        params = make_params(self.con.py_types, self.make_args(vals))

        try:
            if not self.con.in_transaction and not self.con.autocommit:
                self.con.execute_unnamed("begin transaction")
            self._context = self.con.execute_named(
                self.name_bin, params, self.row_desc, self.input_funcs
            )
        except AttributeError as e:
            if self.con is None:
                raise InterfaceError("Cursor closed")
            elif self.con._sock is None:
                raise InterfaceError("connection is closed")
            else:
                raise e

        return tuple() if self._context.rows is None else tuple(self._context.rows)
示例#6
0
文件: legacy.py 项目: esau91/Python
    def run(self, **vals):

        oids, params = make_params(self.con.py_types, self.make_args(vals))

        try:
            name_bin, row_desc, input_funcs = self.name_map[oids]
        except KeyError:
            name_bin, row_desc, input_funcs = self.name_map[
                oids] = self.con.prepare_statement(self.statement, oids)

        try:
            if not self.con.in_transaction and not self.con.autocommit:
                self.con.execute_unnamed("begin transaction")
            self._context = self.con.execute_named(name_bin, params, row_desc,
                                                   input_funcs)
        except AttributeError as e:
            if self.con is None:
                raise InterfaceError("Cursor closed")
            elif self.con._sock is None:
                raise InterfaceError("connection is closed")
            else:
                raise e

        return tuple(self._context.rows)