gpt4 book ai didi

c++ - QSqlite 在 Windows 和 Linux 上的不同行为

转载 作者:太空宇宙 更新时间:2023-11-04 04:07:30 25 4
gpt4 key购买 nike

我有一个非常棘手的问题:

我在 Qt 中有这个 Qsqlite 连接,并且在主数据库中有一些 X 表。我使用 ATTACH 添加另一个数据库,该数据库恰好有一个同名的表 (X)。

So -> mainDB: X has 3 columns, syncDB: X has 19 columns

我想要做的只是获取syncDB表的三列,它们对应于我的mainDB表的三列。

一切在 Windows(qt 5.something)上都运行得很好,但是在 Linux(Ubuntu、Qt 版本 4.8)上,

我遇到了意想不到的行为:

当我发出以下查询时:

qry.exec("INSERT OR IGNORE INTO X SELECT col1, col2, col3 FROM sync.X");

(从sync.X中取出col1,col2,col3并将其放入main.X(只有三列)

但是在 Linux 上它不起作用:它说

table X has 19 columns, but only 3 values were supplied.

当我显式键入 main.X 时,它说没有这样的表。

发生了什么?

最佳答案

这两个错误都表明 main 数据库中没有 X 表。

当打开数据库时没有使用正确的目录/文件名时,通常会发生这种情况,在这种情况下,SQLite 会很乐意创建一个新的空数据库。

关于c++ - QSqlite 在 Windows 和 Linux 上的不同行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20596468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com