首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QSqlQueryModel获得汉字空白单元格

QSqlQueryModel获得汉字空白单元格
EN

Stack Overflow用户
提问于 2021-09-08 04:28:13
回答 1查看 51关注 0票数 0

我的GUI应用程序中有一个QSqlQueryModel,从SAP数据库检索数据,并将其绑定到一个QTableView小部件。

我使用了QODBC驱动程序,并在Windows.But中的ODBC数据源(64)位中配置了一个ODBC项,当我设置一个查询来选择维度表时,我可以得到数据,但是现在数据库中包含中国特色的单元格在tableView中都是空白的。

以下是代码:

代码语言:javascript
复制
self._db = QSqlDatabase.addDatabase("QODBC3")
self._db.setDatabaseName(self._odbc+";SCROLLABLERESULT=TRUE;encoding='utf-8'")
self._db.setUserName(self._user)
self._db.setPassword(self._password)
# 打开数据库,如有报错则显示
if not self._db.open():
    QMessageBox.critical(self, "Database Error", self._db.lastError().text())
    return
# 获取要执行的SQL
_sql = self._generateSQLStatement()
self._model = QSqlQueryModel()
self._model.setQuery(_sql, self._db)
if self._model.lastError().isValid():
    QMessageBox.critical(self,"Database Error", self._model.lastError().text())
    return
self._ui.tableView.setModel(self._model)

下面是结果截图:

红色矩形的单元格应该显示中国特色,但现在是空白的。

-更新

我打开了odbc跟踪,发现了一个sql错误:

DIAG S1000LIBODBCHDB DLL通用错误;-10427将参数/列(2)从数据类型转换为S1000LIBODBCHDB失败(-10427)

在这一错误中,中国特色似乎无法转化为ascii。

但是为什么这个问题出现在QSqlQueryModel上呢?我尝试将SQLite文件与中文结合使用,QSqlQueryModel可以检索中文数据。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-08 05:55:35

我查看了这篇文章:link并跳转到HANA连接属性文档。

这是一个HANA ODBC问题。在ODBC配置中,应添加属性项并将其设置为TRUE。

代码语言:javascript
复制
CHAR_AS_UTF8

那么汉字就会显示出来。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69097026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档