Odoo 中文社区

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Popular
    • Users
    • Groups

    Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

    由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

    本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

    开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

    如果您登录系统碰到问题,请在微信公众号留言:

    odoo使用tds_fdw扩展功能读取外部数据库数据编码问题

    Odoo 开发与实施交流
    2
    6
    1164
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      wangss last edited by

      用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

      1 Reply Last reply Reply Quote 0
      • 静静
        静静 last edited by

        😯 😯 😯 直接用odoo的cr 是不行的,odoo的cr 是psotgresql的游标,你要访问其他类型的数据库,要 安装 python插件,访问的。

        1 Reply Last reply Reply Quote 0
        • W
          wangss last edited by

          @静静 谢谢!
          我安装pymssql,已经可以不通过tds_fdw扩展读取外部数据库数据。
          但如果我想在当前的postgresql数据库中做一个视图,调用外部sqlserver数据库中的表单,还没找到方法。

          1 Reply Last reply Reply Quote 0
          • 静静
            静静 last edited by

            根本听不懂你说的啥。。。如果我想在当前的postgresql数据库中做一个视图 这是啥意思? 调用外部sqlserver数据库中的表单 这又是啥意思,视图中调用别的数据库?。

            W 1 Reply Last reply Reply Quote 0
            • W
              wangss @静静 last edited by

              @静静 意思就是odoo中创建一个视图,视图的数据直接通过调用外部扩展数据库中的表连接获得,这样就不需要本地创建表而把外部数据库的数据复制过来了

              1 Reply Last reply Reply Quote 0
              • W
                wangss last edited by

                问题解决:
                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’

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post