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

SQLITEOracle データベースにアクセスしようとしている場合は、driver を使用しないでください。

SQLiteMS Access のようなファイルベースのデータベースです。したがって、データベース ORCLに接続すると言うと、というファイルが検索ORCLされ、Oracle 11g データベースに接続しようとはしません。

解決:

QODBCドライバーをインストールして構成し、代わりに使用しましたSQLITE

その後、テーブルが表示可能になります。

于 2016-07-13T06:59:39.323 に答える