【发布时间】:2016-05-12 12:40:16
【问题描述】:
我有一个 PostgreSQL 9.4.5 表,其中有一列具有基本字符数据类型,即这样创建:
CREATE TABLE films (
code char(5) CONSTRAINT firstkey PRIMARY KEY,
title varchar(40) NOT NULL);
然后我使用 QSqlQuery 插入数据,使用绑定的 QByteArray:
QSqlQuery query;
query.prepare("INSERT INTO films VALUES (1, ?)");
const QByteArray film("Avatar");
query.addBindValue(film);
query.exec();
在 Ubuntu 15.10 上,电影名称以字节形式进入表格:
\x417661746172
在 Windows 上,它作为字符输入。
如果不将 QByteArray 显式转换为 QString,有没有办法告诉 QSqlQuery 或 PostgreSQL 将数据视为字符串,因此它在 Ubuntu 上的工作方式与在 Windows 上的工作方式一样?
【问题讨论】:
-
基本问题 - 有没有理由使用
QByteArray而不是QString?在引用的代码中我看不到任何内容。
标签: c++ postgresql qt qsqlquery qbytearray