
Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn
由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解
本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!
开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号
如果您登录系统碰到问题,请在微信公众号留言:
odoo使用tds_fdw扩展功能读取外部数据库数据编码问题
-
用tds_fdw访问sqlserver中的表单数据(数据有中文)遇到了编码问题,在odoo代码中执行查询指令:
sql = “select * from ext_erp_cicmp”
self.env.cr.execute(sql)
result = cr.dictfetchall()
直接报错:‘utf-8’ codec can’t decode byte 0xb6 in position 0:…
用pgadmin查询:server_encoding 和client_encoding 结果都是’UTF8’百度查到:
由于MS SQL Server默认编码为GBK,而且Postgresql编码变UTF8,需要改变编码显示为GBK才能正常显示中文,但客户端设置set client_encoding to ‘GBK’后,在pgadmin中查询 “select * from ext_erp_cicmp”会报错22021 -
直接用odoo的cr 是不行的,odoo的cr 是psotgresql的游标,你要访问其他类型的数据库,要 安装 python插件,访问的。
-
@静静 谢谢!
我安装pymssql,已经可以不通过tds_fdw扩展读取外部数据库数据。
但如果我想在当前的postgresql数据库中做一个视图,调用外部sqlserver数据库中的表单,还没找到方法。 -
根本听不懂你说的啥。。。
如果我想在当前的postgresql数据库中做一个视图这是啥意思?调用外部sqlserver数据库中的表单这又是啥意思,视图中调用别的数据库?。 -
@静静 意思就是odoo中创建一个视图,视图的数据直接通过调用外部扩展数据库中的表连接获得,这样就不需要本地创建表而把外部数据库的数据复制过来了
-
问题解决:
CREATE SERVER mssql_svr FOREIGN DATA WRAPPER tds_fdw options(servername ‘192.168.1.27’, character_set ‘utf-8’,port ‘1433’,database ‘001Test1’,tds_version ‘7.1’)
在创建mssql_svr 时,添加参数 tds_version ‘7.1’