gpt4 book ai didi

c++ - 将 .csv 文件导入 QT gui 上的 sqlite3 数据库表

转载 作者:搜寻专家 更新时间:2023-10-31 01:02:22 24 4
gpt4 key购买 nike

我正在编写一个 QT GUI 应用程序,它将一个 .csv 文件导入一个 sqlite 数据库表我的 .csv 文件位于路径/home/aj/import_table.csv我的数据库在/home/aj/testdatabase.db

我写了下面的代码块---

void MainWindow::on_importButton_clicked()
{
QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("/home/aj/testdatabase.db");

QString querystr;
querystr=QString(".separator ","");
QSqlQuery query(querystr,db);
if(query.exec())
{
qDebug()<<"SUCCESSFULLY QUEIRED ";

QString querystr2;
querystr=QString(".import import_table.csv test_table");
}
else
{
qDebug()<<"ERROR DURING QUERY "<<db.lastError().text();
}
}

但它在编译时抛出错误--

/home/aj/sqlite3test/mainwindow.cpp:34: error: invalid conversion from ‘const char*’ to ‘int’ [-fpermissive]
/home/aj/sqlite3test/mainwindow.cpp:34: error: conversion from ‘const char [1]’ to ‘QChar’ is ambiguous
/home/aj/sqlite3test/mainwindow.cpp:34: error: conversion from ‘const char [1]’ to ‘QChar’ is ambiguous
/usr/local/Trolltech/Qt-4.8.4/include/QtCore/qstring.h:90: error: initializing argument 1 of ‘QString::QString(int, QChar)’ [-fpermissive]

任何解决方案???

发生这种情况是因为 .separator 和 .import 是 sqlite 终端命令,不能通过 querystr=Qstring("... ... ..."); 执行吗?格式???

最佳答案

这一行:

querystr=QString(".separator ","");

正在尝试使用两个 const char * 作为构造函数的参数来构造 QString。根据the documentation没有接受这种组合的构造函数。

我认为你的意思是在字符串中包含 (") 引号。你需要用反斜杠将它们转义,如下所示:

querystr=QString(".separator \",\"");

这样编译器就知道它们应该是字符串的一部分,而不是分隔它。

这应该可以解决您的编译错误,但是您最后的评论是正确的,SQLite documentation状态:

And, of course, it is important to remember that the dot-commands are interpreted by the sqlite3.exe command-line program, not by SQLite itself. So none of the dot-commands will work as an argument to SQLite interfaces like sqlite3_prepare() or sqlite3_exec().

换句话说,如果您想从自己编写的 C++ 程序中读取 CSV 文件,则必须用自己的代码解析该文件并通过 SQL INSERT 命令插入记录。

关于c++ - 将 .csv 文件导入 QT gui 上的 sqlite3 数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27351546/

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