This question has been flagged
2097 Views

I believe that there is something wrong here:

db_model=self.env['base.external.dbsource'].search([('id','=','2')])



class test_oracle(models.Model):
    _name = 'test.oracle'
    _rec_name = 'name'
    _description = 'test'
    name = fields.Char(size=20, required=True, index=True, )
    discr = fields.Char(size=30, required=False, index=True, )

    @api.model
    def search(self, args, offset=0, limit=None, order=None, count=False):
        """ search(args[, offset=0][, limit=None][, order=None][, count=False])

        Searches for records based on the ``args``
        :ref:`search domain <reference/orm/domains>`.

        :param args: :ref:`A search domain <reference/orm/domains>`. Use an empty
                     list to match all records.
        :param int offset: number of results to ignore (default: none)
        :param int limit: maximum number of records to return (default: all)
        :param str order: sort string
        :param bool count: if True, only counts and returns the number of matching records (default: False)
        :returns: at most ``limit`` records matching the search criteria

        :raise AccessError: * if user tries to bypass access rules for read on the requested object.
        """
        db_model=self.env['base.external.dbsource'].search([('id','=','2')])
        # db_model = self.pool.get('base.external.dbsource')
    
        rec1 = db_model[1]
        rec2 = db_model[2]

        for rec in db_model:
            res = rec.conn

        res = db_model.connection_open()

        # result = api.call_kw_multi('base.external.dbsource.connection_test',)
        res = db_model.connection_open()

         res = db_model.execute(cr, uid, 1, str1,{'dtsys':''}, metadata=False)
        """
        _logger.warning(str1)

        # def execute(
        #         self, query=None, execute_params=None, metadata=False, **kwargs
        #
         res = db_model.execute(self, uid, 2, str1, '', metadata=True)
        res = db_model.execute(self, str1, '', metadata=True)
        _logger.warning('db_model.execute(cr, uid, 1, str1,'', metadata=True)')
        # res=[{'discr': u'4d', 'id': 4, 'name': u'4n'}, {'discr': u'1d', 'id': 3, 'name': u'1n'}, {'discr': u'2n', 'id': 1, 'name': u'2d Once \u041e\u0434\u0438\u043d \u0440\u0430\u0437'}]
        # _logger.warning(res)
        return 0
            # res

        #
        # res = self._search(args, offset=offset, limit=limit, order=order, count=count)
        # return res if count else self.browse(res)
        #
Avatar
Discard
Author

I myself have already reached this point:

db_model2=self.env['base.external.dbsource']

db_model = db_model2.browse(2)

conn = db_model.connection_open()

str1 = "SELECT 1 id,1 name,1 Discr,1 create_uid,1 create_date,1 write_uid,1 write_date FROM dual"

res = db_model.execute(self,str1, '', True,{})

TypeError: execute() takes at most 4 arguments (6 given)

but the last line of execution with an error