Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 如何转换成字符串?_Postgresql_Openerp - Fatal编程技术网

Postgresql 如何转换成字符串?

Postgresql 如何转换成字符串?,postgresql,openerp,Postgresql,Openerp,我使用sql命令选择数据库中的字段 partner_obj = self.pool.get('res.partner'). browse (cr, uid, ids, *args) partner_name = partner_obj.ids customer = (partner_name) cr.execute("select b.city from res_partner a, res_par

我使用sql命令选择数据库中的字段

 partner_obj = self.pool.get('res.partner'). browse (cr, uid, ids, *args)
                partner_name = partner_obj.ids
                customer = (partner_name)
                cr.execute("select b.city from res_partner a, res_partner_address b where b.partner_id = a.id AND a.id = %s",(customer))
                ads = cr.fetchone()
                city = ads and ads[0] or None
但是,我只知道我们必须转换成字符串。我已经尝试过这样做(上面的代码),但仍然不起作用

我之所以这样做,是因为你想知道这样的信息是在哪座城市里

请你帮帮我好吗


谢谢

OpenERP city中的第一点不是关系字段,因此当您触发sql以获取城市时,您将获得名称,但如果您有任何存储城市代码的自定义项,则需要再进行一次sql注入,以从城市代码中优化匹配的城市

如果像这样,如果你有城市作为关系字段和res_partner_address,那么在这种情况下,城市字段将只存储关系记录表的id,所以当你使用sql注入时,你将得到链接到你的地址的城市id


如果我遗漏了什么,请告诉我,谢谢。

我认为您不需要运行原始SQL,您应该能够使用浏览记录来获取所需信息。我不确定您想从您的问题中得到什么,但我假设您正在传递一个合作伙伴ID列表,并且您想返回一个包含他们地址的所有城市名称的列表。我还没有测试这段代码,这只是一个建议

def find_cities(self, cr, uid, partner_ids, context=None):
    cities = set()
    partner_obj = self.pool.get('res.partner')
    for partner in partner_obj.browse(cr, uid, partner_ids, context):
        for address in partner.address:
            if address.city:
                cities.add(address.city)
    return list(cities)

对不起,我不明白。请简单解释一下。如果我这样做怎么办
cr.execute('SELECT city FROM res_partner_address WHERE city=%s',(city,))city=cr.fetchone()[0]
我的目标是,我可以在新的来源中查找,例如“Algolait”在城市中,台湾pr什么?好的,我了解一点。但直到现在它仍然是一个错误代码。为什么我要连接到res_partner。因为我想知道,所以有一条信息是关于Algolait Algolait和哪个城市的。这是我的目标,您使用的OE版本是哪个?您是否为City定制了合作伙伴表或使用OE的通用实现?什么OE?这,我想建立这样的关系….,如果我想在城市中找到algolait,我只需查看数据库,这意味着,首先我必须查看res_partner中的id,然后我查看表res_partner_地址,我看到我要找的partner_id,我会知道他的名字,并在他居住的城镇问候他