QT コードで Microsoft ODBCデータベースとpostgresデータベースから同時に読み取る必要があります。
問題
- データベース接続を開いたら、どの接続を使用するかを qsqlQuery に指示するにはどうすればよいですか?
- これらのデータベースが存在するのにデータベース接続が失敗するのはなぜですか
#include <QtCore/QCoreApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <Qdebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
//odbc
QSqlDatabase dbODBC= QSqlDatabase::addDatabase("QODBC","microsoft_connection");
dbODBC.setDatabaseName("BIO");
if(!dbODBC.open())
{
qDebug()<<"failed to open BIO";
exit(1);
}
//postgress
QSqlDatabase dbPostgres= QSqlDatabase::addDatabase("QPSQL","postgres_connection");
dbPostgres.setDatabaseName("makerere_boys_db");
dbPostgres.setHostName("127.0.0.1");
dbPostgres.setUserName("postgres");
dbPostgres.setPassword("student");
if (!dbPostgres.open()) {
qDebug()<<"failed to open postgres database";
exit(1);
}
//how do i tell QSqlQuery to use dbODBC instead of dbPostgress?. Frustration follows
QSqlQuery query;
query.exec("SELECT * FROM fees");
qDebug()<<query.value(0).toString();
return a.exec();
system("pause");
}
上記のコードはコンパイルされますが、QSqlQuery はデータベースが開いていないと言います