1

我正在研究 Qt C++ GUI,我试图将数据插入到数据库中的表中。

但这是我得到的错误:

没有这样的表:编写者无法执行语句。

这是我的代码:

#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();

     }

我怎样才能解决这个问题?

4

1 回答 1

0

SQLITE如果您尝试访问 Oracle 数据库,请不要使用驱动程序。

SQLite是一个基于文件的数据库,如 MS Access。因此,当您说连接到数据库 ORCL时,它正在寻找一个名为ORCL而不是尝试连接到您的 Oracle 11g 数据库的文件。

解决方案:

安装和配置QODBC驱动程序并使用它来代替SQLITE.

之后,表格应该是可见的。

于 2016-07-13T06:59:39.323 回答