Qt中的SQLite数据库 我正在研究一个Qt+C++ GUI,我试图把数据插入到数据库中的表中。
但这是我得到的错误: 没有这样的表:写入程序无法执行语句 这是我的密码:Qt中的SQLite数据库 我正在研究一个Qt+C++ GUI,我试图把数据插入到数据库中的表中。,c++,qt,oracle11g,C++,Qt,Oracle11g,但这是我得到的错误: 没有这样的表:写入程序无法执行语句 这是我的密码: #include <QtCore/QCoreApplication> #include <QtSql> #include<QtDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QSqlDatabase db= QSqlDatabase::addDatabase("QSQLITE");
#include <QtCore/QCoreApplication>
#include <QtSql>
#include<QtDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db= QSqlDatabase::addDatabase("QSQLITE");
db.setHostName("FCOESL200656336");
db.setDatabaseName("ORCL");
db.setUserName("scott");
db.setPassword("lion");
db.open();
if(db.open())
{
qDebug() << "Opened!";
QString sQuery = " insert into Writers(W_Id,W_Name,Age,Gender,Nationality,Hand_Used)Values(:W_Id,:W_Name,:Age,:Gender,:Nationality,:Hand_Used)";
QSqlQuery qry;
qry.prepare(sQuery);
qry.bindValue(":W_Id",122);
qry.bindValue(":W_Name","fgdgd");
qry.bindValue(":Age",32);
qry.bindValue(":Gender",'F');
qry.bindValue(":Nationality","gfdg");
qry.bindValue(":Hand_Used",'R');
if( !qry.exec(sQuery) )
qDebug() << qry.lastError().text();
else
qDebug( "Inserted!" );
}
else
{
qDebug() <<"Connection failed" << db.lastError().text();
}
db.close();
return a.exec();
}
#包括
#包括
#包括
int main(int argc,char*argv[])
{
qcorea应用程序(argc、argv);
QSqlDatabase db=QSqlDatabase::addDatabase(“QSQLITE”);
db.setHostName(“FCOESL200656336”);
db.setDatabaseName(“ORCL”);
db.setUserName(“scott”);
db.setPassword(“lion”);
db.open();
if(db.open())
{
如果您试图访问Oracle数据库,请不要使用SQLITE
驱动程序。
SQLite
是一个类似MS Access的基于文件的数据库。因此,当您说连接到数据库ORCL时,它正在寻找一个名为ORCL
的文件,而不是试图连接到您的Oracle 11g数据库
解决方案:
安装并配置QODBC驱动程序,并将其用于替代SQLITE
之后,表应该是可查看的。我相信您的应用程序尝试访问的位置没有数据库,或者您的数据库中确实没有名为Writers
的表。如果您尝试访问Oracle数据库,为什么要加载SQLITE驱动程序?非常感谢大家的帮助@Vite Falcon:我确信表在数据库中,但当我创建表时,我没有首先创建自己的数据库,而是使用了oracle 11g的默认数据库。你认为这就是问题所在吗?我认为@Mat提出的问题与此相关……为什么要使用SQLite驱动程序连接到oracle数据库?SQLite是基于文件的dat像MS Access一样低调。所以当你说连接到数据库ORCL时,它正在寻找一个名为ORCL的文件,而不是试图连接到你的Oracle 11g数据库。非常感谢vite Falcon。现在我明白了。你能告诉我我可以将Oracle连接到哪个驱动程序吗。