0

Microsoft sql データベースにアクセスするプログラムを作成しました。デスクトップでは問題なく動作します。しかし、Androidデバイスで同じプログラムを実行すると、エラーが発生します:

04-09 06:17:41.784: W/Qt(1240): kernel\qsqlquery.cpp:368 (bool QSqlQuery::exec(const QString&)): QSqlQuery::exec: データベースが開いていません

これが私のコードです:

 QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("Driver={SQL Server};Server=192.168.1.3;Database=sms_exp;");
db.setUserName("sa");
db.setPassword("xxxxxyy");
if(!db.open())
{
    qDebug ("Error");
}
else
{
    qDebug ("OK");
}

QSqlQuery query (db);
query.exec("SELECT item_code, item_des FROM prod_mast WHERE item_code = 0100000210");
while (query.next())
{
        QString name1 = query.value(0).toString();
        QString name2 = query.value(1).toString();
        qDebug (qPrintable(name1));
        qDebug (qPrintable(name2));
   }

db.close();
4

1 に答える 1

0

ODBC ドライバーの Android ビルドはありません。確認QSqlDatabase::drivers()すると、Qt の Android では SQLite ドライバーのみがサポートされていることがわかります。

Android で ODBC 接続を行う唯一の方法は、クライアントとサーバー間のネットワーク接続をサポートする JDBC-ODBC ブリッジを使用することです。Android 上の JDBC から Windows マシン上の ODBC へ、そして MS Access ODBC ドライバーへ。

于 2014-04-09T10:31:58.400 に答える