0

QSqlDatabase の多くのチュートリアルでは、次のようにデータベースを開始します。

QSqlDatabase cn = QSqlDatabase::addDatabase("QSQLITE",QString::number(id));

これとは違うでしょうか:

QSqlDatabase cn;
cn.addDatabase("QSQLITE",QString::number(id));

またはこれ:

QSqlDatabase cn;
cn = QSqlDatabase::addDatabase("QSQLITE",QString::number(id));
4

1 に答える 1

1

QSqlDatabase::addDatabaseデータベース接続のリストにデータベースを追加し、そのように返しQSqlDatabaseます

QSqlDatabase cn;
cn.addDatabase("QSQLITE",QString::number(id));

は間違っていて、うまくいきません。もちろん次が正しい

QSqlDatabase cn;
cn = QSqlDatabase::addDatabase("QSQLITE",QString::number(id));

と同等です

QSqlDatabase cn = QSqlDatabase::addDatabase("QSQLITE",QString::number(id));

ここで指摘したようaddDatabaseに、クラス インスタンスを呼び出すことができます。たとえば、次のコードも機能します (ただし、これを使用する必要はないと思います)。

QSqlDatabase sdb,plus;
plus = sdb.addDatabase("QSQLITE");
plus.setDatabaseName("G:/Database/test.db");

if (!plus.open())
{
       qDebug() << "not open";
}
于 2014-10-31T18:21:08.217 に答える