我有一个我想在Qt中解析的csv文件。我想使用sql插件,但我不确定如何设置。我目前无法从我的Qt应用程序打开.csv
文件 - 我必须手动打开它,然后启动我的应用程序,希望从中查询。
如果在我开始使用应用程序之前手动打开了我尝试阅读的文件,则会出现以下驱动程序错误:
[Microsoft][ODBC Excel Driver] External table is not in the expected format.
[Microsoft][ODBC Excel Driver] General Warning Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x1ae0 Thread 0x1f2c DBC 0x4c52a4 Excel.' QODBC3: Unable to connect.
这是我的设置......
Qt Creator Build / Version:
我的.pro文件挂钩到sql插件:
QT += core gui network sql
我还有以下内容:
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
这是我建立Excel数据库连接并尝试查询的代码:
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
QString pathString = QString("C:\\MY_FILES\\test_work\\Xena\\Xena2544-2G\\Reports\\asdf_SN1_RFC2544_7_port_verify.csv");
db.setDatabaseName("DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" + pathString );
if (!db.open())
{
QSqlError er = db.lastError();
QMessageBox::information(0, "Error", er.text());
}
if(db.open())
{
QSqlQuery query("select * from [" + QString("asdf_SN1_RFC2544_7_port_verify") + "$B13]"); //NEVER GETS HERE UNLESS i ALREADY MANUALLY OPENED THE FILE BEFORE RUNNING CODE.
QString process1Result = query.value(0).toString();
ui->verifyUnit1Status_lb->setText(process1Result);
}
文件权限 - 完全控制 - 修改 - 阅读&amp;执行 - 阅读 - 写
我真的很想让这个功能继续下去。我会假设错误在连接字符串中,但此时我已经尝试了几个小时而没有成功。
提前谢谢你。